我正在尝试做一个多维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);
        }
    }

}

07-24 09:49
查看更多