Swift에서 어레이에 요소 추가
예를 들어 다음과 같이 배열이 있다고 가정합니다.
var myArray = ["Steve", "Bill", "Linus", "Bret"]
그리고 나중에 요소를 해당 배열 끝에 푸시/추가하여 다음을 얻으려고 합니다.
["Steve", "Bill", "Linus", "Bret", "Tim"]
어떤 방법을 사용하면 좋을까요?
어레이 전면에 요소를 추가하는 경우는 어떻습니까?시프트가 일정하게 유지되는 시간이 있습니까?
Swift 3/4/5에서는 다음과 같이 처리됩니다.
배열 끝에 새 요소를 추가하려면 다음과 같이 하십시오.
anArray.append("This String")
어레이의 끝에 다른 어레이를 추가합니다.
anArray += ["Moar", "Strings"]
anArray.append(contentsOf: ["Moar", "Strings"])
배열에 새 요소를 삽입합니다.
anArray.insert("This String", at: 0)
다른 어레이의 내용을 어레이에 삽입합니다.
anArray.insert(contentsOf: ["Moar", "Strings"], at: 0)
자세한 정보는 110페이지의 "Swift Programming Language"의 "Collection Types" 장을 참조하십시오.
원하는 경우 변수 및/또는 개체를 전달할 수도 있습니다.
var str1:String = "John"
var str2:String = "Bob"
var myArray = ["Steve", "Bill", "Linus", "Bret"]
//add to the end of the array with append
myArray.append(str1)
myArray.append(str2)
앞에 추가하려면:
//use 'insert' instead of append
myArray.insert(str1, atIndex:0)
myArray.insert(str2, atIndex:0)
//Swift 3
myArray.insert(str1, at: 0)
myArray.insert(str2, at: 0)
이미 언급한 바와 같이 xCode 6.1부터는 '+='를 더 이상 사용할 수 없습니다.
하려면 , 「」를 합니다.+=
★★★★★★★★★★★★★★★★★★:
myArray += ["Craig"]
myArray += ["Jony", "Eddy"]
이 연산자는 일반적으로 메서드와 동일합니다(그리고 매우 오래된 Swift 버전에서는 동일한 요소 유형의 다른 컬렉션뿐만 아니라 단일 요소를 추가할 수 있습니다).
어떤 색인에도 삽입할 수 있습니다.
들어 한 경우, 이 기능을 할 수 .Array
내선번호를 가진 클래스
+= 및 + 연산자 사용:
extension Array {
}
func += <V> (inout left: [V], right: V) {
left.append(right)
}
func + <V>(left: Array<V>, right: V) -> Array<V>
{
var map = Array<V>()
for (v) in left {
map.append(v)
}
map.append(right)
return map
}
다음으로 다음을 사용합니다.
var list = [AnyObject]()
list += "hello"
list += ["hello", "world!"]
var list2 = list + "anything"
첫 번째 위치에서 항목을 손실하지 않고 어레이의 선두에 삽입하려면 여기에 작은 확장자를 입력합니다.
extension Array{
mutating func appendAtBeginning(newItem : Element){
let copy = self
self = []
self.append(newItem)
self.appendContentsOf(copy)
}
}
Swift 4.1 및 Xcode 9.4.1의 경우
어레이에 오브젝트를 추가할 수 있는 방법은 기본적으로 두 가지가 있습니다.
let stringOne = "One"
let strigTwo = "Two"
let stringThree = "Three"
var array:[String] = []//If your array is string type
타입 1)
//To append elements at the end
array.append(stringOne)
array.append(stringThree)
타입 2)
//To add elements at specific index
array.insert(strigTwo, at: 1)
2개의 어레이를 추가하는 경우
var array1 = [1,2,3,4,5]
let array2 = [6,7,8,9]
let array3 = array1+array2
print(array3)
array1.append(contentsOf: array2)
print(array1)
어레이 대신 Deque 사용
★★★★의
Deque
에 걸쳐서Array
양단에서 효율적인 삽입과 분리를 지원한다는 것입니다.
var names:Deque = ["Steve", "Bill", "Linus", "Bret"]
이름 끝에 'Tim' 추가
names.append("Tim")
이름 시작 부분에 'Tim' 추가
names.prepend("John")
이름의 첫 번째 요소를 제거합니다.
names.popFirst() // "John"
이름의 마지막 요소 제거
names.popLast() // "Tim"
Swift Programming Language 143페이지부터:
어레이의 추가 메서드를 호출하여 어레이 끝에 새 항목을 추가할 수 있습니다.
또는 추가 할당 연산자(+=)를 사용하여 어레이 끝에 새 항목을 추가합니다.
출처: Apple Inc.에서 발췌.'스위트 프로그래밍 언어' 아이북스https://itun.es/us/jEUH0.l
제안하는 해결책에 추가하자면, 이는 많은 경우에 상각후 고정시간 연산이라는 것을 아는 것이 유용하다.
복잡성:셀프 스토리지가 다른 라이브 어레이와 공유되지 않는 한 O(1)를 상각하고, 브리지드 NSAray를 랩하지 않는 경우에는 O(카운트), 그렇지 않은 경우에는 효율이 지정되지 않습니다.
를 찾고 있습니다.cons
스위프트의 오퍼레이터처럼요원래 배열을 변경하지 않고 일정한 시간 내에 요소를 끝에 태킹한 새로운 불변의 배열을 반환해야 합니다.이 기능을 하는 표준 기능은 아직 찾지 못했습니다.하나 찾으면 다시 보고하도록 할게!
사용할 수 있습니다.
Myarray.insert("Data #\(index)", atIndex: index)
원하는 개체를 추가하려면 어레이 구조를 확장할 수 있습니다.
extension Array where Element: Equatable {
mutating func appendUniqueObject(object: Generator.Element) {
if contains(object) == false {
append(object)
}
}
}
어레이가 NSAray인 경우adding
다음과 같이 배열 끝에 개체를 추가하는 기능을 수행합니다.
스위프트 4.2
var myArray: NSArray = []
let firstElement: String = "First element"
let secondElement: String = "Second element"
// Process to add the elements to the array
myArray.adding(firstElement)
myArray.adding(secondElement)
결과:
print(myArray)
// ["First element", "Second element"]
그건 아주 간단한 방법이에요, 여러분!
Swift 4.2의 경우:
myArray.append("Tim") //To add "Tim" into array
또는
myArray.insert("Tim", at: 0) //Change 0 with specific location
예: 학생 = ["Ben", "Ivy", "Jordell"]
1) 어레이 끝에 단일 요소를 추가하려면 append(_:)를 사용합니다.
students.append(\ "Maxime" )
2) append ( contents Of : )메서드에 다른 어레이 또는 여러 종류의 시퀀스를 전달하여 여러 요소를 동시에 추가합니다.
students.append(contentsOf: ["Shakia" , "William"])
3) 단일 요소에 대해 insert(_:at:) 메서드를 사용하여 배열 중간에 새 요소를 추가하려면
students.insert("Liam" , at:2 )
4) insert ( contents Of : at : )를 사용하여 다른 컬렉션 또는 어레이 리터럴에서 여러 요소를 삽입합니다.
students.insert(['Tim','TIM' at: 2 )
5.3초속이라고 생각합니다.
일반 어레이는var myArray = ["Steve", "Bill", "Linus", "Bret"]
그리고 추가하기를 원합니다."Tim"
어레이에 접속하면myArray.insert("Tim", at=*index*)
어레이의 후면에 추가하고 싶은 경우는,myArray.append("Tim", at: 3)
언급URL : https://stackoverflow.com/questions/24002733/add-an-element-to-an-array-in-swift
'programing' 카테고리의 다른 글
폴더를 선택하도록 OpenFileDialog를 구성하려면 어떻게 해야 합니까? (0) | 2023.04.19 |
---|---|
SQL에서 EXISTS와 IN의 차이점은 무엇입니까? (0) | 2023.04.19 |
Python에서 파일을 이동하려면 어떻게 해야 하나요? (0) | 2023.04.19 |
단일 파일 하드 리셋 (0) | 2023.04.13 |
목록을 python에서 dict 키로 사용할 수 없는 이유는 무엇입니까?사용할 수 있는 것과 사용할 수 없는 것이 정확히 무엇이고, 그 이유는 무엇입니까? (0) | 2023.04.13 |