这几天做一个项目时,遇到ArrayList.remove(Object)方法失败,而ArrayList"包含"删除的对象,这其中的"包含"不是完全包含,请看下面的例子:

package org.mytest;

import java.util.ArrayList;

/**对ArrayList.remove或者contains的笔记
* contains,remove时会执行equals()
* 例子1,删除为false
* 例子2,删除为true
* @author ywf
*
*/
public class test {
public static void main(String[] args) {
System.out.println("例子1:ArrayList删除Node对象:");
ArrayList<Node> list = new ArrayList<Node>();
Node node1 = new Node(1);
Node node2 = new Node(2);
list.add(node1);
list.add(node2);
System.out.println(list.remove(new Node(1)));
System.out.println("例子2:ArrayList删除Integer对象:");
ArrayList<Integer> list1 = new ArrayList<Integer>();
Integer node11 = new Integer(1);
Integer node21 = new Integer(2);
list1.add(node11);
list1.add(node21);
System.out.println(list1.remove(new Integer(1)));
}
}
class Node{
int id;
public Node(int id){
this.id = id;
}
public boolean equals(Node node){
return this.id==node.id;
}
}

有经验的可以一下子得出第一个是false,第二个是true,对我这个菜鸟来说以为两个都是true,我以为覆写了equals()就能实现都为true的效果,结果是错误的。

最新文章

  1. WebApi基于Token和签名的验证
  2. Bzoj2683 简单题 [CDQ分治]
  3. 研究kisso跨域登录的心得
  4. 第二百二十八天 how can I 坚持
  5. 从ZOJ2114(Transportation Network)到Link-cut-tree(LCT)
  6. IT第十一天、第十二天、第十三天 - 数组的应用、飞行棋游戏的编写和总结
  7. GROUP BY语句与HAVING语句的使用
  8. Javaweb分页功能简单实现
  9. 18 UI美化自定义形状shape
  10. 三十七、小程序页面跳转传参参数值为url时参数丢失
  11. 用ImageJ快速分析和处理图像
  12. python数据类型及其详解
  13. 手机端-ajax跨域请求滚屏分页
  14. mysql 命令行 备份 恢复数据
  15. 如何在Mac下配置Github和Bitbucket的SSH
  16. 通过jQuery Ajax使用FormData对象上传文件 (转载)
  17. Python+Selenium笔记(五):生成测试报告
  18. 利用Httponly提升web应用程序安全性(转)
  19. 解决Android LogCat 输出乱码的问题(转)
  20. FFmpeg编译: undefined reference to &#39;av_frame_alloc()&#39;

热门文章

  1. 显示3行,还要省略号(这个属性比较合适WebKit浏览器或移动端(绝大部分是WebKit内核的)浏览器)
  2. sql2008安装时 重新启动计算机 失败
  3. 十步优化SQL Server中的数据访问
  4. .net web api ioc unity usage
  5. 添加一种emit的应用,反射发出,较直接调用稍慢,但好过反射与表达式树。
  6. poj 2796 Feel Good dp || 单调栈
  7. NS5S1153 切換器
  8. 静态变量(static)的特点
  9. BZOJ4017 小Q的无敌异或(位运算)
  10. 洛谷2085最小函数值(minval) + 洛谷1631序列合并