java list removeAll 使用

removeAll 的实现是使用equals方法进行比较,

代码如下:

public booleanremoveAll(Collection c) {

Objects.requireNonNull(c);

booleanmodified =false;

Iterator it = iterator();

while(it.hasNext()) {

if(c.contains(it.next())) {

it.remove();

modified =true;

}

}

returnmodified;

}

使用情景:我们经常对对象集合进行操作,一般从数据库中取出的封装对象会包含创建时间、更新时间等,如果此时使用removeAll则会因为时间比较返回false,。。。。?

解决:重写对象的equals方法,出去时间等不需比较的字段即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,916评论 18 399
  • 第十天 权限修饰符 public protected default private 同一类 true true ...
    炙冰阅读 3,561评论 0 1
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 5,386评论 0 3
  • 传送门 解读阿里Java开发手册(v1.1.1) - 异常日志 前言 阿里Java开发手册谈不上圣经,但确实是大量...
    kelgon阅读 9,819评论 4 50
  • 繁星 “银河系里,大约有多少颗恒星?” “三千亿颗。“ 宇宙没有边际...
    雾呦阅读 4,123评论 2 7