java中list集合刪除其中的某一個元素


方法一:Iterator 去除

//定義list
List<User> list = new ArrayList<>();
User  user1 = new User();  
User  user2 = new User(); 
user1.serName("111");
user2.serName("222"); 
list.add(user1);
list.add(user2);
//刪除集合中某一元素值
Iterator<User> iterator = list.iterator();
while (iterator.hasNext()){
    User next = iterator.next();
    String name = next.getName();
    if (name.equals("222")){
        iterator.remove();
    }
}

缺點:雖然也能去除 但是列表改造成 Iterator 類型的了 ,還要轉換。
方法二: stream 去除

//定義list
List<User> list = new ArrayList<>();
User  user1 = new User();  
User  user2 = new User(); 
user1.serName("111");
user2.serName("222"); 
list.add(user1);
list.add(user2);

//刪除集合中某一元素值
list.stream().findFirst().map(vo -> {
    if (vo.getName().equals("222")){
        list.remove(vo);
    }
    return vo;
});

優點: 沒有改變list格式並且更簡潔。
缺點:remove的時候會再次遍歷整個list來找出 這個元素,性能會有一定的損耗。
方法三: stream +索引 去除

//定義list
List<User> list = new ArrayList<>();
User  user1 = new User();  
User  user2 = new User(); 
user1.serName("111");
user2.serName("222"); 
list.add(user1);
list.add(user2);

//刪除集合中某一元素值
IntStream.range(0,list.size()).filter(i->
    list.get(i).getName().equals("222")).
boxed().findFirst().map(i->list.remove((int)i));

其中boxed為裝箱操作
更簡潔,高效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM