dinamik bir dizi boyutları, java?
Gibi bir ifadesi var yani xClass bir dizi yüklemek istiyorum bir sınıf xClass var
xClass mysclass[] = new xClass[10];
myclass[0] = new xClass();
myclass[9] = new xClass();
Sorun 10 eğer ihtiyacım olacak mı bilmiyorum. 8 ya da 12 numara ihtiyacım olabilir. Çalışma zamanı kadar bilemeyeceğim. Anında bir dizideki öğe sayısını değiştirebilir miyim? Eğer öyleyse, nasıl?
Sağlamak için mümkün olabilir herhangi bir yardım için çok teşekkürler
CEVAP
Bir dizinin boyutu bir kez oluşturduktan sonra değiştirebilirsiniz. Sizin de ihtiyacınız olacak düşündüğünüzden daha büyük ayırmaya ya da büyümeye ihtiyacı ayrılacak olan yükünü kabul. Ne zaman yeni bir tane tahsis edilecek ve yeni eski verileri kopyalamak için:
int oldItems[] = new int[10];
for (int i=0; i<10; i ) {
oldItems[i] = i 10;
}
int newItems[] = new int[20];
System.arraycopy(oldItems, 0, newItems, 0, 10);
oldItems = newItems;
Eğer bu durumda kendinizi bulursanız, son derece yerine Java Koleksiyonları kullanmanızı tavsiye ediyorum. Özellikle ArrayList
aslında bir dizi sarar ve gerekli olarak diziyi yetiştirmek için: mantık ilgilenir
List<xClass> mysclass = new ArrayList<xClass>();
myclass.add(new xClass());
myclass.add(new xClass());
Genellikle bir ArrayList
bir dizi zaten çeşitli nedenlerle için tercih edilen bir çözümdür. Bir kere, diziler değiştirilebilir. Eğer bir sınıf varsa bunu yapar:
class Myclass {
private int items[];
public int[] getItems() { return items; }
}
bir arayan savunma kopyalama her çeşit yol açan özel veri üyesi, değiştirmek gibi bir sorun yarattın. Liste sürümü ile karşılaştırın:
class Myclass {
private List<Integer> items;
public List<Integer> getItems() { return Collections.unmodifiableList(items); }
}
Nasıl ben dinamik olarak Java bir dizi...
Dizi Java mı ilan edeceğiz?...
Nasıl Java iki dizi bir arada olabilir...
Ne'un yazdırmak için en kolay yol...
Nasıl Java genel bir dizi oluşturmak i...