黑马程序员技术交流社区

标题: Set里的元素是不是能够重复的,那么用什么方法来区分重复与否呢? [打印本页]

作者: 我干阿衰    时间: 2015-5-9 22:13
标题: Set里的元素是不是能够重复的,那么用什么方法来区分重复与否呢?
Set里的元素是不是能够重复的,那么用什么方法来区分重复与否呢?使用==还是用equals()?
    他们有什么区别?
作者: 短暂的火光    时间: 2015-5-10 22:03
==是变量的相等判断  equals()则是对字符串的相等判断  if(n==5)         String s="jk";   String t="ty";  s.equals(t)
作者: thoris    时间: 2015-5-10 22:43
HashSet 靠hashcode 和equals
TreeSet靠比较方法 可以实现接口或者自定义比较器
作者: 凉仁日记    时间: 2015-5-11 00:15
简单点说,== 是对变量的相等判断,equals是对字符串的判断
作者: showdy    时间: 2015-5-11 12:44
Set集合中不重复,主要依赖add()方法底层的源码,hashset集合add()方法主要依赖hashcode()和equals()方法,而treeset集合中add()底层主要依赖实现comparable和comparator接口。
对于非自定义对象(具体可比性的对象),因为hashset和treeset已经实现了比较,不要重新方法,而
对于自定义对象(不具有可比性的对象),使用hashset使用需要重写hashcode和equals方法,而使用TreeSet集合需要实现comparator或者comparable重写compare()或者compareTo()方法,实现比较。
作者: 殃金咒    时间: 2015-5-11 12:51
膜拜众神
作者: fenglinluomu    时间: 2015-5-11 13:12
楼上加一





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