Java - 引用数组

时间:2016-04-09 06:11:14

标签: java arrays

以下是代码段:

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];

我收到以下错误:需要数组,但找到了String         int this_cbd_number = this_cdb[0];

此处router_id可以是1 2 3 45。我知道我宣布this_cdbString。但是如何将它引用到正确的数组名称?

2 个答案:

答案 0 :(得分:3)

如果没有反射,则无法从String中引用其他变量/字段/类。 你需要封装你的数组,例如在另一个数组或List内。示例(假设路由器是从1索引的):

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];

答案 1 :(得分:1)

尝试将所有数组放入某种数据结构中,例如LinkedList:

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];