**比较可靠的三种 list 删除 元素 方法
1.for循环倒序删除
2.迭代器删除
3.lamda stream流过滤
@Test
void listRemoveFor(){
List<String> initList = new ArrayList<>();
initList.add("张三");
initList.add("李四");
initList.add("周一");
initList.add("刘四");
initList.add("李强");
initList.add("李白");
int size = initList.size();
for (int i = size - 1; i >= 0; i--) {
if(initList.get(i).startsWith("李")){
initList.remove(i);
}
}
System.out.println(initList);
}
@Test
void listRemoveIterator(){
List<String> initList = new ArrayList<>();
initList.add("张三");
initList.add("李四");
initList.add("周一");
initList.add("刘四");
initList.add("李强");
initList.add("李白");
Iterator<String> iterator = initList.iterator();
while (iterator.hasNext()){
if(iterator.next().startsWith("李")){
iterator.remove();
}
}
System.out.println(initList);
}
@Test
void listRemoveStream(){
List<String> initList = new ArrayList<>();
initList.add("张三");
initList.add("李四");
initList.add("周一");
initList.add("刘四");
initList.add("李强");
initList.add("李白");
List<String> list = initList.stream().filter(x -> !x.startsWith("李")).collect(Collectors.toList());
System.out.println(list);
}