我正在尝试做一个多维ArrayList
,所以我想出了一种方法:
int NumberInColumns = (int) Math.floor(listAnswers.size() / NUMBER_OF_COLUMNS);
// make higher number of answers on the right
if (listAnswers.size() % NUMBER_OF_COLUMNS > 0)
NumberInColumns++;
ArrayList<HolderAnswer> listAnswers = getAnswers();
ArrayList<ArrayList<HolderAnswer>> listAnswersSorted = new ArrayList<ArrayList<HolderAnswer>>();
int k=0;
for (HolderAnswer answer : listAnswers) {
ArrayList<HolderAnswer> temp = new ArrayList<HolderAnswer>();
temp.add(answer);
if (k % NumberInColumns == 0 ) {
listAnswersSorted.add(temp);
}
else {
if (k == listAnswers.size()) {
listAnswersSorted.add(temp);
}
}
k++;
}
我遇到的问题是,当
ArrayList.size()
为7时,当我尝试从数组中获取信息时,只会得到第一条记录和第五条记录。我想念什么? 最佳答案
因此,实例化多维(我选择3D)arraylist可能如下所示:
List< List <List <Some Type Here>>> my3DList=
new ArrayList< ArrayList < ArrayList <Some Type Here >() >() >();
所以首先让我们看看如何从中获取数据...
ArrayList secondDemension = my3DList.get(0);
ArrayList thirdDemension = secondDemension.get(0);
SomeTypeHere value = thirdDemsion = 3D.List.get(0);
现在让我们看一下如何遍历所有数据:
for(List<List<SomeType>> secondDemension in my3DList){
for(List<sometype> thirdDemsion in secondDemension){
for(YourType value in thridDemsion){
System.out.println(value);
}
}
}