A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Set里的元素是不是能够重复的,那么用什么方法来区分重复与否呢?使用==还是用equals()?
    他们有什么区别?

6 个回复

倒序浏览
==是变量的相等判断  equals()则是对字符串的相等判断  if(n==5)         String s="jk";   String t="ty";  s.equals(t)
回复 使用道具 举报
HashSet 靠hashcode 和equals
TreeSet靠比较方法 可以实现接口或者自定义比较器
回复 使用道具 举报
简单点说,== 是对变量的相等判断,equals是对字符串的判断
回复 使用道具 举报
Set集合中不重复,主要依赖add()方法底层的源码,hashset集合add()方法主要依赖hashcode()和equals()方法,而treeset集合中add()底层主要依赖实现comparable和comparator接口。
对于非自定义对象(具体可比性的对象),因为hashset和treeset已经实现了比较,不要重新方法,而
对于自定义对象(不具有可比性的对象),使用hashset使用需要重写hashcode和equals方法,而使用TreeSet集合需要实现comparator或者comparable重写compare()或者compareTo()方法,实现比较。
回复 使用道具 举报 1 0
膜拜众神
回复 使用道具 举报
楼上加一
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马