黑马程序员技术交流社区

标题: 集合这块:contains的底层原理就是equalis,怎么调用啊? [打印本页]

作者: 我能驾驭住    时间: 2012-5-21 11:26
标题: 集合这块:contains的底层原理就是equalis,怎么调用啊?
contains的底层原理就是equalis,怎么调用啊?
看那个视频,看了两遍,有点迷糊,搞不懂,他是怎么去用的

作者: 胥江    时间: 2012-5-21 12:09
list.contains(o),系统会对list中的每个元素e调用o.equals(e) 方法,加入list中有n个元素,那么会调用n次o.equals(e),只要有一次o.equals(e)返回了true,那么list.contains(o)返回true,否则返回false。建议覆盖equals方法。
  1.   public boolean equals(Object obj) {
  2.              if (this == obj)
  3.                  return true;
  4.              if (obj == null)
  5.                  return false;
  6.              if (getClass() != obj.getClass())
  7.                  return false;
  8.              final Order other = (Order) obj;
  9.               if(this.getOrderid()!=other.getOrderid())
  10.                  return false;
  11.              return true;
  12.         }
复制代码

作者: 我能驾驭住    时间: 2012-5-21 12:10
本帖最后由 我能驾驭住 于 2012-5-21 12:13 编辑

ok,谢谢!好像明白了
系统会对list中的每个元素e调用o.equals(e) 方法
作者: 我能驾驭住    时间: 2012-5-21 12:11
胥江 发表于 2012-5-21 12:09
list.contains(o),系统会对list中的每个元素e调用o.equals(e) 方法,加入list中有n个元素,那么会调用n次o ...

ok,谢谢!好像明白了点




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2