2016-04-09 18 views
1

kod parçacığı aşağıdadır: aşağıdaki hatayı alıyorumJava - Array referanslanma

int[] cdb1 = {2,1,1,5,5}; 
int[] cbd2 = {3,1,1,2,2,6,6}; 
int[] cbd3 = {3,2,2,3,3,7,7}; 
int[] cbd4 = {2,3,3,4,4}; 
int[] cbd5 = {4,4,4,5,5,6,6,7,7}; 
String this_cdb = "cdb"+Integer.toString(router_id); 
int this_cbd_number = this_cdb[0]; 

: Gerekli dizi ama Dize 1234 olabilir burada router_idint this_cbd_number = this_cdb[0];

bulunamadı veya 5. Biliyorum this_cdb'u String olarak bildirdim. Ama onu doğru dizi adına nasıl referans gösterebilirim? Bir LinkedList gibi bir veri yapısı bir çeşit dizileri her koyarak

cevap

3

bir dize diğer değişkenler/alanlara/sınıfları başvurular yapamaz. Dizilerinizi kapsüller, ör. başka bir dizi veya List. Örnek (yönlendiricinin,

int[] cdb1 = {2,1,1,5,5}; 
int[] cbd2 = {3,1,1,2,2,6,6}; 
int[] cbd3 = {3,2,2,3,3,7,7}; 
int[] cbd4 = {2,3,3,4,4}; 
int[] cbd5 = {4,4,4,5,5,6,6,7,7}; 
int[][] cdb = {cdb1, cdb2, cdb3, cdb4, cdb5}; 
int this_cbd_number = cdb[router_id - 1][0]; 
+0

adresinde belirtildiği gibi [router_id-1] doğru mu? – hnvasa

+0

evet, haklısınız, düzeltildiniz –

1

Dene: yansıma olmadan

LinkedList<int[]> arrayList = new LinkedList<>(); 
arrayList.add(cdb1); 
arrayList.add(cdb2); 
arrayList.add(cdb3); 
arrayList.add(cdb4); 
arrayList.add(cdb5); 
int this_cbd_number = arrayList.get(router_id)[0];