java中的2D ArrayList
我有一个2D ArrayList,我想从2D ArrayList中获取一个特定的ArrayList 这可能吗? 如果是,我怎么做? 2D arrayList到底是如何工作的,我已经读了很多关于它的书,但我仍然不明白。 我的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 &
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时有一个ArrayListfor(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时有一个ArrayListfor(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,我很抱歉