java中数组名的动态初始化?

java中数组名的动态初始化?,java,linked-list,biginteger,Java,Linked List,Biginteger,我想初始化很多数组。数组的名称按照如下顺序排列:array12,array13,array14,……array19,array22,array23…………array99。 实际上,我有一个数组1,它包含一些整数,数组2,它包含一些整数,我把这两个数组中的公共整数都加到数组12中 最好的方法是什么。 链接列表,映射,向量?? 记住,我的程序经常使用子集(如array12) 我认为最好的方法是存储在数组中,因为我不必一直浏览链接列表(或任何其他方式)。 但是我不会写 public int a

我想初始化很多数组。数组的名称按照如下顺序排列:array12,array13,array14,……array19,array22,array23…………array99。 实际上,我有一个数组1,它包含一些整数,数组2,它包含一些整数,我把这两个数组中的公共整数都加到数组12中 最好的方法是什么。 链接列表,映射,向量?? 记住,我的程序经常使用子集(如array12)

我认为最好的方法是存储在数组中,因为我不必一直浏览链接列表(或任何其他方式)。 但是我不会写

    public int array12=new int[10];
    public int array13=new int[10];
在代码的中间,当我的i(某个整数)=1,j=2时,我想要访问ARARY12。 那我怎么做呢

我实际上在努力解决这个问题。 请给出与我所问问题相关的答案,而不是fb问题的答案。
我想自己做。

你需要使用地图-你不能(轻松地)动态命名事物:

public final Map<Stiring, Integer[]> myMap = new HashMap<>(){
  {
    put("array1", new Integer[10]);
    put("array2", new Integer[10]);
    put("array3", new Integer[10]);
    ...more arrays
  }
};
编辑

根据@twain249的评论,您可以使用循环来填充地图:

public final Map<Stiring, Integer[]> myMap = new HashMap<>(){
  {
    for(int i=0;i<someNumber;++i) {
      for(int j=0;j<someOtherNumber;++j) {
        put("array" + i + "" + j, new Integer[10]);
      }
    }
  }
};
public final Map myMap=new HashMap(){
{

对于(int i=0;i您需要进入更高维度的数组-具体地说,您似乎正在寻找一个3D数组。名称中的两个整数(即
1
2
array12
中)应该是3D数组的前两个索引

int[][][] array = new int[10][][];
for (int i = 0; i != 10 ; i++) {
    array[i] = new int[10][];
    for (int j = 0 ; j != 10 ; j++) {
        array[i][j] = new int[10];
    }
}

现在访问您设计的
array34[i]
看起来像
array[3][4][i]

这是不可能的。我的方法是创建和ArrayList,您只需将要动态创建的每个数组添加到ArrayList中的正确位置即可

以下是代码示例:

ArrayList<int[]> listOfArrays = new ArrayList<int[]>(); // Creates a list of arrays.

int[] someArrayFromListOfArrays = listOfArrays.get(index); // Gets an array from arraylist

listOfArrays.add(new int[]); // Adds a new array to the collection

listOfArrays.add(index, new int[]); // This will insert an array into a specified location in the list
ArrayList listOfArrays=new ArrayList();//创建数组列表。
int[]someArrayFromListOfArrays=listOfArrays.get(index);//从arraylist获取数组
listOfArrays.add(new int[]);//将新数组添加到集合中
add(index,new int[]);//这将在列表中的指定位置插入数组
这应该能满足你的需要

这里是一个规格的


希望有帮助

我看到那边有一个设计问题。绝对不是矢量。默认情况下,这些旧的数据结构是同步的,因此比新的集合类慢。如果它们遵循某种模式,您可能可以使用循环并根据循环中的索引设置名称。那么这是否正确?对于(i=1;ii如果你想要从1到10的数字,那么你需要
ithanks。我认为这是解决这个问题的最好方法。我可以用这个??新的整数[10][10]来声明多维或三维数组吗?您可以将最有用的内容放入
映射中
只需更改值的类型,例如
映射
。谢谢,这是我的想法。但我仍然需要大约50个3d数组。因此我必须声明所有这些。在运行时访问这些数组会有什么影响?我将如何访问数组12(如果I=1和j=2)@Atul就是这样,你不需要50个,你只需要一个3-D数组。里面有100个1-D数组,每个数组都有两个整数索引。要访问
array12
,你只需编写
array12[1][2]
。因此如果你在寻找
array12
的第五个元素,即
array12[5]
,你现在要写
数组[1][2][5]
ArrayList<int[]> listOfArrays = new ArrayList<int[]>(); // Creates a list of arrays.

int[] someArrayFromListOfArrays = listOfArrays.get(index); // Gets an array from arraylist

listOfArrays.add(new int[]); // Adds a new array to the collection

listOfArrays.add(index, new int[]); // This will insert an array into a specified location in the list