Ukuran array tidak dapat dimodifikasi. Jika Anda ingin array yang lebih besar Anda harus instantiate yang baru.
Solusi yang lebih baik adalah menggunakan ArrayList
yang dapat tumbuh sesuai kebutuhan Anda. Metode ArrayList.toArray( T[] a )
memberi Anda kembali array Anda jika Anda membutuhkannya dalam formulir ini.
List<String> where = new ArrayList<String>();
where.add( ContactsContract.Contacts.HAS_PHONE_NUMBER+"=1" );
where.add( ContactsContract.Contacts.IN_VISIBLE_GROUP+"=1" );
Jika Anda perlu mengonversinya menjadi array sederhana ...
String[] simpleArray = new String[ where.size() ];
where.toArray( simpleArray );
Tetapi sebagian besar hal yang Anda lakukan dengan sebuah array dapat Anda lakukan dengan ArrayList ini, juga:
// iterate over the array
for( String oneItem : where ) {
...
}
// get specific items
where.get( 1 );
Gunakan a
List<String>
, seperti aArrayList<String>
. Ini dapat ditumbuhkan secara dinamis, tidak seperti array (lihat: Java Edisi 2 yang Efektif, Butir 25: Lebih suka daftar dari array ).Jika Anda bersikeras menggunakan array, Anda dapat menggunakan
java.util.Arrays.copyOf
untuk mengalokasikan array yang lebih besar untuk mengakomodasi elemen tambahan. Ini sebenarnya bukan solusi terbaik.Ini
O(N)
perappend
.ArrayList
Di lain pihak,O(1)
biaya perolehan diamortisasi per operasi.Lihat juga
sumber
ArrayList
dilakukan secara internal.Apache Commons Lang miliki
ia mengembalikan array baru, tetapi jika Anda benar-benar bekerja dengan array karena suatu alasan, ini mungkin cara yang ideal untuk melakukan ini.
sumber
Ada opsi lain yang belum saya lihat di sini dan yang tidak melibatkan Objek atau Koleksi "kompleks".
sumber
Tidak ada metode
append()
pada array. Alih-alih seperti yang sudah disarankan objek Daftar dapat melayani kebutuhan untuk memasukkan elemen secara dinamis misalnya.Atau jika Anda benar-benar ingin menggunakan array:
tapi kemudian ini adalah ukuran tetap dan tidak ada elemen yang bisa ditambahkan.
sumber
Seperti kata tangens, ukuran array adalah tetap. Tapi Anda harus instantiate dulu, kalau tidak hanya referensi nol.
Array ini hanya dapat berisi 10 elemen. Jadi Anda dapat menambahkan nilai hanya 10 kali. Dalam kode Anda, Anda sedang mengakses referensi nol. Itu sebabnya tidak bekerja. Untuk memiliki koleksi yang tumbuh secara dinamis, gunakan ArrayList.
sumber
sumber
Saya sudah membuat kode ini! Itu bekerja seperti pesona!
Saya harap Anda menyukainya!!
sumber
Anda perlu menggunakan Daftar Koleksi. Anda tidak dapat mengubah dimensi array.
sumber
Jika Anda ingin menyimpan data Anda dalam array sederhana seperti ini
dan Anda ingin menambahkan beberapa elemen ke dalamnya seperti angka, silakan kami StringBuilder yang jauh lebih efisien daripada string penggabung.
Ini adalah metode yang jauh lebih baik untuk membangun string Anda dan menyimpannya ke dalam array 'where' Anda.
sumber
Menambahkan item baru ke array String.
sumber
<code>
tag dan ini memiliki masalah dengan tipe generik. Coba hindari tag ini, karena ... ada masalah, dan indentasi kode Anda dengan 4 spasi putih untuk mendapatkan pemformatan yang tepat. Saya melakukan itu untuk pertanyaan Anda :).Ada banyak cara untuk menambahkan elemen ke array. Anda dapat menggunakan temp
List
untuk mengelola elemen dan kemudian mengubahnya kembaliArray
atau Anda dapat menggunakanjava.util.Arrays.copyOf
dan menggabungkannya dengan obat generik untuk hasil yang lebih baik.Contoh ini akan menunjukkan caranya:
Untuk menggunakan metode ini, Anda hanya perlu menyebutnya seperti ini:
Jika Anda ingin menggabungkan dua array, Anda dapat memodifikasi metode sebelumnya seperti ini:
Sekarang Anda dapat memanggil metode seperti ini:
Seperti yang saya sebutkan, Anda juga dapat menggunakan
List
objek. Namun, perlu sedikit retasan agar aman seperti ini:Sekarang Anda dapat memanggil metode seperti ini:
sumber
newArray[elements.length] = element;
, Yang Anda maksudnewArray[elements.length - 1] = element;
?Saya tidak berpengalaman di Jawa tetapi saya selalu diberitahu bahwa array adalah struktur statis yang memiliki ukuran yang telah ditentukan. Anda harus menggunakan ArrayList atau Vektor atau struktur dinamis lainnya.
sumber
Anda dapat membuat daftar
Collection.addAll()
array , dan gunakan untuk mengubah array string ke daftar array Andasumber
Anda cukup melakukan ini:
sumber
Jika seseorang benar-benar ingin mengubah ukuran array, Anda dapat melakukan sesuatu seperti ini:
sumber
Ukuran array tidak dapat dimodifikasi. Jika Anda harus menggunakan array, Anda dapat menggunakan:
sumber
Anda juga dapat mengalokasikan ukuran memori yang cukup besar. Berikut ini adalah implementasi tumpukan sederhana: program seharusnya menghasilkan 3 dan 5.
sumber