问题:无法移除2个集合中相同元素

方法:移除所包含的其所有元素。

在执行removeAll方法时,会先对集合元素进行比较,如果元素相等才执行移除操作,说到这,相信很多人都已经明白是怎么回事了,因为不相等(equals),所以没有执行移除。

java.util.AbstractCollection<E>

removeAll

 public boolean removeAll(Collection<?> c) {
boolean modified = false;
Iterator<?> it = iterator();
while (it.hasNext()) {
if (c.contains(it.next())) {
it.remove();
modified = true;
}
}
return modified;
}

remove

public boolean remove(Object o) {
Iterator<E> it = iterator();
if (o==null) {
while (it.hasNext()) {
if (it.next()==null) {
it.remove();
return true;
}
}
} else {
while (it.hasNext()) {
if (o.equals(it.next())) {
it.remove();
return true;
}
}
}
return false;
}

注:if (o.equals(it.next())) !

上述例子中的实体类没有Override hashCode和equals方法

最新文章

  1. C++中的也能使用正则表达式
  2. nfs的挂载方法
  3. Python中的__init__和__new__介绍
  4. HDU 4856
  5. [JS]Javascript的函数总结
  6. 操作笔记:linux下安装ftp
  7. hdu 4739 状压DP
  8. CLR via C# 序列化读书笔记
  9. jQuery 中的 Ajax $.ajax() load() $.get() $.post() $.getJSON() $.getScript()
  10. 初步boost之pool图书馆学习笔记
  11. CSS传统布局之页面布局实例
  12. docker - 容器里安装ssh
  13. 【转载】十条jQuery代码片段助力Web开发效率提升
  14. Zookeeper+Kafka集群部署(转)
  15. Java面试题复习笔记(数据库)
  16. Linux如何实现进程监控和守护
  17. docker安装elasticsearch及head插件
  18. [Ubuntu] Git可视化比较工具 P4Merge 的安装/配置及使用
  19. JavaのEclipse安装Tomcat插件
  20. Java基础-封装(09)

热门文章

  1. MariaDB GTID 复制同步
  2. 控制流之for
  3. (简单) POJ 2406 Power Strings,扩展KMP。
  4. 关于JAVA中hashCode
  5. Oracle物化视图的用法与总结
  6. iOS 代码实现获得应用的版本号(Version/Build)
  7. iOS开发——delegate的相关警告
  8. STM8的中断系统以及外部中断详解
  9. IOS开发-UI学习-delegate(代理)的使用,键盘消失
  10. java--面向对象编程