369 Stimmen

Wie fügt man neue Elemente zu einem Array hinzu?

Ich habe den folgenden Code:

String[] where;
where.append(ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1");
where.append(ContactsContract.Contacts.IN_VISIBLE_GROUP + "=1");

Diese beiden Anhänge werden nicht kompiliert. Wie würde das korrekt funktionieren?

5voto

Paligulus Punkte 493

Sie müssen eine Sammelliste verwenden. Sie können ein Array nicht neu dimensionieren.

3voto

RMachnik Punkte 3530

Wenn Sie Ihre Daten in einem einfachen Array wie diesem speichern möchten

String[] where = new String[10];

und Sie einige Elemente wie Zahlen hinzufügen möchten, verwenden Sie bitte den StringBuilder, der viel effizienter ist als die Verkettung von Strings.

StringBuilder phoneNumber = new StringBuilder();
phoneNumber.append("1");
phoneNumber.append("2");
where[0] = phoneNumber.toString();

Dies ist eine viel bessere Methode, um Ihre Zeichenkette zu erstellen und sie in Ihrem 'where'-Array zu speichern.

3voto

Baked Inhalf Punkte 2844

Wenn man die Größe eines Arrays wirklich ändern möchte, könnte man so vorgehen:

String[] arr = {"a", "b", "c"};
System.out.println(Arrays.toString(arr)); 
// Output is: [a, b, c]

arr = Arrays.copyOf(arr, 10); // new size will be 10 elements
arr[3] = "d";
arr[4] = "e";
arr[5] = "f";

System.out.println(Arrays.toString(arr));
// Output is: [a, b, c, d, e, f, null, null, null, null]

3voto

npinti Punkte 51030

Ich kenne mich mit Java nicht so gut aus, aber mir wurde immer gesagt, dass Arrays statische Strukturen sind, die eine vordefinierte Größe haben. Sie müssen eine ArrayList oder einen Vektor oder eine andere dynamische Struktur verwenden.

2voto

Jiao Punkte 43

Die Größe des Arrays kann nicht geändert werden. Wenn Sie ein Array verwenden müssen, können Sie verwenden:

System.arraycopy(src, srcpos, dest, destpos, length);

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