Java ArrayList将元素添加到第三层
我在一个arraylist中循环,试图添加我从ai.get(k.add(Cent.get(k.get(m)-Cent.get(k.get(l))中得到的每个答案;进入各自的arraylist of arraylist of arraylist。对于每三个元素,它应该将以下元素添加到新的arraylist中。此数据集中有12个元素,因此它应该看起来像[[[0,1,2],[3,4,5],[6,7,8],[9,10,11],[],[],[],[],[],[],[],[],[],[],[],[]Java ArrayList将元素添加到第三层,java,arraylist,Java,Arraylist,我在一个arraylist中循环,试图添加我从ai.get(k.add(Cent.get(k.get(m)-Cent.get(k.get(l))中得到的每个答案;进入各自的arraylist of arraylist of arraylist。对于每三个元素,它应该将以下元素添加到新的arraylist中。此数据集中有12个元素,因此它应该看起来像[[[0,1,2],[3,4,5],[6,7,8],[9,10,11],[],[],[],[],[],[],[],[],[],[],[],[] Arr
ArrayList<ArrayList> ai = new ArrayList<ArrayList>();
// Creates arrays based on number of centroids
for (int k = 0; k < numCen; k++) {
ai.add(new ArrayList(k));
}
for (int i = 0; i < numCen; i++) {
for(int k = 0; k < dim; k++) {
ai.get(i).add(new ArrayList(k));
//ai.add(new ArrayList(i));
}
}
System.out.println(ai);
// Gets all of the centroids
for (int k = 0; k < numCen; k++) {
// Gets the centroid itself
for (int m = 0; m < Cent.size() + 1; m++) {
// Gets all the elements in array
for (int l = 0; l < Cent.size() + 1; l++) {
// Skips over the element being subtracted so you never get 0
if(Cent.get(k).get(m) == Cent.get(k).get(l)) {
continue;
}
//Places all the elements in ai
ai.get(k).add(Cent.get(k).get(m)-Cent.get(k).get(l));
}
}
System.out.println(ai);
}
添加第三层。现在你只有两个
列表
可以存储[1,2]
列表
可以存储[[1,2],[3,4]]
,这就是您现在拥有的列表
可以存储[[1,2],[3,4],[5,6],[7,8]]]
列表的数量是层数(或尺寸,这是一个通用名称)。
当然,任何列表都可以为空,[]
。
哦,是的。
因此,您的内部ArrayList
包含泛型对象
-s,您碰巧用ArrayList
s填充了这些对象,但仍然很难访问它们,您可以这样做:
((ArrayList)ai.get(firstIndex).get(secondIndex)).get/set(thirdIndex)
这是您的代码中没有发生的事情,所以我有点困惑为什么您会有第三层的内容。这是你根本没有表现出来的东西
无论如何,你真的应该切换到“更类型化”的方法,并且
List<List<List<Float>>> ai=new ArrayList<>();
List ai=new ArrayList();
开始时。我已经有第三层了。这是空的arraylist。[[[], [], [], []], [[], [], [], []], [[], [], [], []]]. 我需要帮助把元素放进去。
List<List<List<Float>>> ai=new ArrayList<>();