假设我们有这样的代码:
LinkedList<Integer> myIntegers = new LinkedList<Integer>();
ListIterator<Integer> myIntegersIt = myIntegers.listIterator
myIntegers.add(1);
myIntegers.add(2);
myIntegers.add(3);
myIntegers.add(4);
myIntegers.add(5);
LinkedList<Integer> selectedValues = new LinkedList<Integer>();
while(myIntegersIt.hasNext()){
if(...some code...){
selectedValues.add(myIntegersIt.next());
}
myIntegers.remove(myIntegersIt.previous());
}
有没有不使用前一种方法的替代方案?
2条答案
按热度按时间bkhjykvo1#
因为无论如何都要从列表中删除所有数据,如果您使用的是java-8,那么这是一个简单的操作。
通过数组流,用逻辑条件过滤所需的值,并以
List
```selectedValues = myIntegers.stream().filter(x -> /sometest/).collect(Collectors.toList());
myIntegers.clear();
myIntegers.removeIf(x -> //testToRemove);
selectedValues = new LinkedList<>(myIntegers);
myIntegers.clear();
oaxa6hgo2#
我的整数列表可以浏览与增强为。。。不需要迭代器