Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为数组列表中的数组编制索引?_Java_Arrays_Arraylist_Indexing - Fatal编程技术网

Java 如何为数组列表中的数组编制索引?

Java 如何为数组列表中的数组编制索引?,java,arrays,arraylist,indexing,Java,Arrays,Arraylist,Indexing,我有一个2D阵列: int[][] Key = {{1,0,1,0,1,0},{1,0,1,0,1,0},{1,0,1,0,1,0},{1,0,1,0,1,0}, {1,0,1,0,1,0},{1,0,1,0,1,0},{1,0,1,0,1,0},{1,0,1,0,1,0}}; 将此2D阵列拆分为8*1D阵列(每个块1个)所需的内容。因此,我定义了8个新的1D数组以及一个数组列表,以将所有这些数组放在其中: ArrayList<int

我有一个2D阵列:

int[][] Key = {{1,0,1,0,1,0},{1,0,1,0,1,0},{1,0,1,0,1,0},{1,0,1,0,1,0},
                        {1,0,1,0,1,0},{1,0,1,0,1,0},{1,0,1,0,1,0},{1,0,1,0,1,0}};
将此2D阵列拆分为8*1D阵列(每个块1个)所需的内容。因此,我定义了8个新的1D数组以及一个数组列表,以将所有这些数组放在其中:

   ArrayList<int[]> B_Blocks = new ArrayList<int[]>(); 

   int[] B0 = new int[Key[0].length];
   int[] B1 = new int[Key[0].length];
   int[] B2 = new int[Key[0].length];
   int[] B3 = new int[Key[0].length];
   int[] B4 = new int[Key[0].length];
   int[] B5 = new int[Key[0].length];
   int[] B6 = new int[Key[0].length];
   int[] B7 = new int[Key[0].length];
它会运行,但输出时的值不相同:

for (int i =0;i<rightblock.length;i++) {
       for (int j =0;j<rightblockExp[0].length;j++) {
       System.out.print(B_Blocks.get(i)[j]);
        } System.out.print("\n");
   }

for(int i=0;i您可以使用list.get(i)访问ArrayList的元素。例如:

int[] array1 = B_Blocks.get(0);

希望有帮助!

如果您想在指定索引处添加元素,可以使用列表中的重载方法

list.add(0, key[0][0]);
list.add(1, key[0][1]);

也许我们应该回到最初的要求:

将此2D阵列拆分为8*1D阵列需要什么(每个块1个)

我需要的是某种方法来索引数组列表中的数组

可以像这样使用二维阵列:

  • 键[0]
    将为您提供第一个子数组('row'),
    键[1]
    第二个子数组,依此类推
  • 键[0][0]
    将为您提供第一个子数组中的第一个元素,
    键[0][1]
    第二个元素,依此类推。对元素的访问,比如说
    键[0][5]
    ,也可以表示为

    int[] firstRow = Key[0];
    doSomethingWith(firstRow[5]);
    
第一行允许引用
firstRow
指向
Key[0]
,即第一个子数组。
firstRow
Key[0]
指向同一数组-当您声明:


不,不,如果我要把它们放回另一个阵列,为什么我要把它们放在一个列表中

ArrayList问题:

另外,arraylist的全部目的是让以后通过forloops进行更多操作时更容易访问。需要帮助吗,谢谢


如果您使用arrayList重新构建该结构,没有什么会变得更容易,除非您希望分别向数组arrayList添加元素。

arrayList充其量与2d数组一样快。事实上,我认为它是在内部使用数组实现的。列表实现类包含索引,您可以使用List.set(index,elem)方法将元素放在指定的索引处。请给我一个语法示例好吗?不..不,如果我要将它们放回另一个数组中,为什么我要将它们放在列表中。我只是说,这就是如何访问列表中的一个元素的方法。你可以用它做任何你想做的事情。因此,无法访问数组中的数组st而不是只访问arraylist。由于您在添加它们之前已将它们全部命名,您仍然可以根据您给它们的名称来引用它们。@awolfe91..我在arraylist中添加了每个数组,这样我就可以通过arraylist访问每个数组。也就是说,不需要一次调用每个数组来调整值,现在任务完成了ion是我是否有这种能力,如果有,确切的语法是什么。谢谢。我将如何使用这种技术。将键中的第一行添加到arrayList中的第一个数组中?请你再问一遍这个问题。我编辑了
int[] firstRow = Key[0];
doSomethingWith(firstRow[5]);