java中的2D ArrayList

java中的2D ArrayList,java,arrays,arraylist,Java,Arrays,Arraylist,我有一个2D ArrayList,我想从2D ArrayList中获取一个特定的ArrayList 这可能吗? 如果是,我怎么做? 2D arrayList到底是如何工作的,我已经读了很多关于它的书,但我仍然不明白。 我的2D ArrayList具有以下格式: ArrayList<ArrayList<Items>> arrayList = new ArrayList<ArrayList<Items>>(); for (int i = 0; i &

我有一个2D ArrayList,我想从2D ArrayList中获取一个特定的ArrayList

这可能吗? 如果是,我怎么做? 2D arrayList到底是如何工作的,我已经读了很多关于它的书,但我仍然不明白。 我的2D ArrayList具有以下格式:

ArrayList<ArrayList<Items>> arrayList = new ArrayList<ArrayList<Items>>();

for (int i = 0; i < 10; i++) {
    ArrayList<Items> row = new ArrayList<Items>();

    for (int j = 0; j < 500; j++)
    {
        // create the items...
    }
}
是的,这是可能的

由于在调用ArrayList.get时有一个ArrayList,因此这将返回一个ArrayList。然后你可以继续做任何你需要的事情

例如:

for(int i = 0; i < arrayList.length(); i++){
   ArrayList<Items> innerList = arrayList.get(i);
   for(int j =0; j < 10; j++){
       innerList.add(new Items());
   }
 }
这将获取您在上面创建的十个阵列列表,并用十个项目填充每个列表。

是的,这是可能的

由于在调用ArrayList.get时有一个ArrayList,因此这将返回一个ArrayList。然后你可以继续做任何你需要的事情

例如:

for(int i = 0; i < arrayList.length(); i++){
   ArrayList<Items> innerList = arrayList.get(i);
   for(int j =0; j < 10; j++){
       innerList.add(new Items());
   }
 }
这将获取您在上面制作的十个数组列表,并用十个项目填充每个列表。

编辑:此答案针对的是问题的原始版本,这有点难以理解

如果我理解正确的话,您希望将多个列表扁平化为一个列表

List<List<String>> listOfLists = new ArrayList<List<String>>();
for (int i = 0; i < 5; i++) {
    List<String> thisList = Arrays.asList("a", "b", "c");
    listOfLists.add(thisList);
}

// flatten
List<String> flattenedListOfStrings = new ArrayList<String>();
for (List<String> listOfString : listOfLists) {
    flattenedListOfStrings.addAll(listOfString);
}

// test
for (String string : flattenedListOfStrings) {
    System.out.print(string);
}
编辑:这个答案是针对问题的原始版本,这个版本有点难理解

如果我理解正确的话,您希望将多个列表扁平化为一个列表

List<List<String>> listOfLists = new ArrayList<List<String>>();
for (int i = 0; i < 5; i++) {
    List<String> thisList = Arrays.asList("a", "b", "c");
    listOfLists.add(thisList);
}

// flatten
List<String> flattenedListOfStrings = new ArrayList<String>();
for (List<String> listOfString : listOfLists) {
    flattenedListOfStrings.addAll(listOfString);
}

// test
for (String string : flattenedListOfStrings) {
    System.out.print(string);
}
从顶部开始:

这可能吗

是的,其实很简单:

ArrayList innerList = arrayList.get(listIndex);
2D ArrayList是如何工作的

基本上,它是一个数组的数组,因此当您访问2D列表中的一个元素时,会返回一个ArrayList,您必须进一步调用get on以获取所需的元素

例如:

ArrayList innerList = (ArrayList) arrayList.get(listIndex); // returns an arraylist
Item item = (Item) innerList.get(innerListIndex); // returns your item
从顶部开始:

这可能吗

是的,其实很简单:

ArrayList innerList = arrayList.get(listIndex);
2D ArrayList是如何工作的

基本上,它是一个数组的数组,因此当您访问2D列表中的一个元素时,会返回一个ArrayList,您必须进一步调用get on以获取所需的元素

例如:

ArrayList innerList = (ArrayList) arrayList.get(listIndex); // returns an arraylist
Item item = (Item) innerList.get(innerListIndex); // returns your item

是的,当然,您可以从ArrayList中选择ArrayList。为此,您可以执行以下两个步骤:

初始化并声明2D ArrayList 根据您的问题,您有10行i=10和500列j=500

ArrayList<ArrayList<Integer>> arrayList = new ArrayList<ArrayList<Integer>>();

    for (int i = 0; i < 10; i++) {
        ArrayList<Integer> row = new ArrayList<Integer>();

        for (int j = 0; j < 500; j++)
        {
            //add any integers into "row" ArrayList
            row.add(2);
        }
        //add this above 1d "row" ArrayList to our 2D "arraylist" 
        arrayList.add(row);
    }
从ArrayList获取元素
是的,当然,您可以从ArrayList中选择ArrayList。为此,您可以执行以下两个步骤:

初始化并声明2D ArrayList 根据您的问题,您有10行i=10和500列j=500

ArrayList<ArrayList<Integer>> arrayList = new ArrayList<ArrayList<Integer>>();

    for (int i = 0; i < 10; i++) {
        ArrayList<Integer> row = new ArrayList<Integer>();

        for (int j = 0; j < 500; j++)
        {
            //add any integers into "row" ArrayList
            row.add(2);
        }
        //add this above 1d "row" ArrayList to our 2D "arraylist" 
        arrayList.add(row);
    }
从ArrayList获取元素
我认为你需要一种新的存储信息的方法……阿诺德,如果有人编辑了你的帖子并提高了它的质量,一般来说,你不应该回滚到以前版本的帖子。有关此主题的更多信息,请阅读。好的,Richard,我很抱歉,我认为你需要一种新的信息存储方法…Arnold,如果有人编辑了你的文章并提高了它的质量,一般来说,你不应该回滚到以前版本的文章。有关这个话题的更多信息,请阅读。好的,Richard,我很抱歉