Java 如何确保列表在列表中的旧位置,以便用新位置替换它
我有一个带有点的列表(AWT) 现在我的问题是,如何确保listTemp在listOfList中正好处于已删除列表的旧位置?所有这些都是在for循环中发生的。所以我不想重复新添加的列表Java 如何确保列表在列表中的旧位置,以便用新位置替换它,java,list,for-loop,iterator,position,Java,List,For Loop,Iterator,Position,我有一个带有点的列表(AWT) 现在我的问题是,如何确保listTemp在listOfList中正好处于已删除列表的旧位置?所有这些都是在for循环中发生的。所以我不想重复新添加的列表 有什么想法吗?请提前感谢删除后,您可以使用 List.add(int index, E element) 要在删除元素后将其添加到所需索引处,可以使用 List.add(int index, E element) 要在所需索引处添加元素,请根据OP的最新评论编辑:,或者可以将新的点添加到找到的特定列表中,而不
有什么想法吗?请提前感谢删除后,您可以使用
List.add(int index, E element)
要在删除元素后将其添加到所需索引处,可以使用
List.add(int index, E element)
要在所需索引处添加元素,请根据OP的最新评论编辑:,或者可以将新的
点添加到找到的特定列表中,而不是创建新列表并替换找到的列表
for (List<Point> list : listOfList) {
if (list.contains(specificPoint) {
//add new point to the same list.
list.add(newPoint);
}
}
编辑:根据OP的最新评论,或者可以将新的点添加到找到的特定列表中,而不是创建新列表并替换找到的列表
for (List<Point> list : listOfList) {
if (list.contains(specificPoint) {
//add new point to the same list.
list.add(newPoint);
}
}
使用ListIterator
迭代ListIterator列表
,并使用ListIterator.set()
将列表替换为新列表:
ListIterator<List<Point>> it = listOfList.listIterator();
while (it.hasNext()) {
List<Point> list = it.next();
...
it.set(listTemp);
}
ListIterator it=listOfList.ListIterator();
while(it.hasNext()){
List=it.next();
...
设置(listTemp);
}
使用ListIterator
迭代ListIterator列表
,并使用ListIterator.set()
将列表替换为新列表:
ListIterator<List<Point>> it = listOfList.listIterator();
while (it.hasNext()) {
List<Point> list = it.next();
...
it.set(listTemp);
}
ListIterator it=listOfList.ListIterator();
while(it.hasNext()){
List=it.next();
...
设置(listTemp);
}
我觉得问题应该更清楚。你想实现什么?我试图在遍历所有列表的同时,在其中一个列表中插入一个点。任务是在迭代仍在进行时,不要再次查看此已查看列表。旧列表需要替换为旧列表位置的新列表,包含所有旧点+新点one@Jürgen,您可以将新的点作为列表添加到现有列表中。如果列表是可变的,则添加(newPoint)
,而不是将所有元素复制到新列表中。如何知道其是否可变?@Jürgen,看起来您正在创建listOfList
作为newarraylist
并在程序中填充。因此,它是可变的,您只需将新点添加到列表中,而无需创建新列表。我正在相应地更新我的答案。我觉得问题应该更清楚。你想实现什么?我试图在遍历所有列表的同时,在其中一个列表中插入一个点。任务是在迭代仍在进行时,不要再次查看此已查看列表。旧列表需要替换为旧列表位置的新列表,包含所有旧点+新点one@Jürgen,您可以将新的点作为列表添加到现有列表中。如果列表是可变的,则添加(newPoint)
,而不是将所有元素复制到新列表中。如何知道其是否可变?@Jürgen,看起来您正在创建listOfList
作为newarraylist
并在程序中填充。因此,它是可变的,您只需将新点添加到列表中,而无需创建新列表。我正在相应地更新我的答案。
ListIterator<List<Point>> it = listOfList.listIterator();
while (it.hasNext()) {
List<Point> list = it.next();
...
it.set(listTemp);
}