423 Stimmen

Fügen Sie ein Element zu einem Array in Swift hinzu

Angenommen, ich habe ein Array, zum Beispiel:

var myArray = ["Steve", "Bill", "Linus", "Bret"]

Und später möchte ich ein Element am Ende dieses Arrays hinzufügen, um zu erhalten:

["Steve", "Bill", "Linus", "Bret", "Tim"]

Welche Methode sollte ich verwenden?

Und was ist mit dem Fall, dass ich ein Element am Anfang des Arrays hinzufügen möchte? Gibt es eine konstante Zeit unshift?

5voto

Hier ist eine kleine Erweiterung, wenn Sie am Anfang des Arrays einfügen möchten, ohne den Eintrag an der ersten Position zu verlieren

extension Array{
    mutating func appendAtBeginning(newItem : Element){
        let copy = self
        self = []
        self.append(newItem)
        self.appendContentsOf(copy)
    }
}

5voto

Naresh Punkte 14268

In Swift 4.1 und Xcode 9.4.1

Wir können Objekte im Array grundsätzlich auf zwei Arten hinzufügen

let stringOne = "One"
let strigTwo = "Two"
let stringThree = "Three"
var array:[String] = []//Wenn Ihr Array vom Typ String ist

Typ 1)

//Um Elemente am Ende anzufügen
array.append(stringOne)
array.append(stringThree)

Typ 2)

//Um Elemente an einer bestimmten Indexposition hinzuzufügen
array.insert(strigTwo, at: 1)

Wenn Sie zwei Arrays hinzufügen möchten

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)

2voto

aglasser Punkte 3069

Von Seite 143 des Buches "Die Swift-Programmiersprache":

Sie können ein neues Element am Ende eines Arrays hinzufügen, indem Sie die append-Methode des Arrays aufrufen.

Alternativ können Sie ein neues Element am Ende eines Arrays mit dem Zuweisungsoperator (+=) hinzufügen.

Auszug aus: Apple Inc. “Die Swift-Programmiersprache.” iBooks. https://itun.es/us/jEUH0.l

2voto

Benjohn Punkte 12585

Um zu den Lösungen, die append vorschlagen, hinzuzufügen, ist es nützlich zu wissen, dass dies in vielen Fällen eine amortisierte konstante Zeit Operation ist:

Komplexität: Amortisiert O(1), es sei denn, der Speicher von self wird mit einem anderen aktiven Array geteilt; O(count), wenn self kein überbrücktes NSArray einhüllt; ansonsten ist die Effizienz nicht spezifiziert.

Ich bin auf der Suche nach einem cons-ähnlichen Operator für Swift. Es sollte ein neues unveränderliches Array zurückgeben, bei dem das Element am Ende angehängt wird, in konstanter Zeit, ohne das ursprüngliche Array zu ändern. Ich habe noch keine Standardfunktion gefunden, die dies tut. Ich werde versuchen mich zu melden, wenn ich eine finde!

1voto

ANIL.MUNDURU Punkte 403

Sie könnten verwenden

Myarray.insert("Daten #\(index)", atIndex: index)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X