我正在使用Processing
和IGeo
库,我有ArrayList
个IVec[]
数组:
ArrayList<IVec []> v = new ArrayList<IVec[]>();
对于ArrayList I
的每个I
,都有一组IVec []
数组,表示曲线控制点的坐标。我需要反转IVec []
控制点的顺序,保持ArrayList的相同顺序(我试图反转曲线缝逆转控制点顺序并保持曲线的原始顺序)但我无法理解这该怎么做。
任何人都可以帮助我吗?
答案 0 :(得分:1)
我不会为您提供完整的解决方案,但会引导您完成它:
v
IVec[]
),
Arrays.asList
)Collections.reverse
撤消列表中的项目答案 1 :(得分:1)
您可以使用Collections.reverse
您还可以使用堆栈数据结构。您可以通过push
将元素迭代到堆栈中来迭代您想要反转的集合。然后,当你真正想要使用元素时,你pop
堆栈中的每个元素,这将允许你以相反的顺序迭代集合。
答案 2 :(得分:0)
试试这个;
for(int i = 0; i < OutArray.length; I++)
{ // Here get the inner Array and pass it to Helper method.
// Add the return array to newArray List
}
return newArrayList.
答案 3 :(得分:0)
此解决方案正在运行:
for (int i=0; i<v.size (); i++) {
IVec [] vert=v.get(i);
for (int j=0; j<vert.length/2; j++) {
IVec temp = vert[j];
vert[j]=vert[vert.length -1 - j];
vert[vert.length - 1 - j] = temp;
}
}
答案 4 :(得分:0)
这应该有效(不是最有效的方式,但很容易理解):
public static <T> void reverseElements(ArrayList<T[]> list) {
ArrayList<T> tempList = new ArrayList<T>();
for(T[] arr : list) {
tempList.clear();
for(T t : arr)
tempList.add(t);
Collections.reverse(tempList);
tempList.toArray(arr);
arr = tempList.toArray(arr);
}
}