黑马程序员技术交流社区

标题: 关于set的问题 [打印本页]

作者: 紫影    时间: 2015-5-6 09:55
标题: 关于set的问题
Set里的元素是不是能够重复的,那么用什么方法来区分重复与否呢?使用==还是用equals()?他们有什么区别?
作者: 紫影    时间: 2015-5-6 09:58
由于电脑反应慢,发了两次啊
作者: ZSMAN    时间: 2015-5-6 10:02
hashSet是依靠hashcode()和equals(),treeSet依靠元素实现Comparable接口或者传入Comparator
作者: Huylens    时间: 2015-5-6 10:50
Set是不允许元素重复的,Set只能通过游标来取值,并且值是不能重复的。
其中主要的两个实现类是HashSet和TreeSet.
TreeSet是通过compareTo或者compare方法来保证元素的唯一性,元素是以二叉树的形式存放的。
HashSet是通过equal方法和hashcode方法来保证元素的唯一性,它的底层数据结构是哈希表。

作者: Huylens    时间: 2015-5-6 10:57
==和equals的区别还有的,比较的底层内容是不一样的。
例如:String str1="abc";
         String str2="abc";
str1==str2;结果是true;
         String str3=new String("abc");
         String str4=new String("abc");
str3==str4;结果是false;
str3.eqauls(str4);结果就是true

作者: cyr    时间: 2015-5-6 14:47
Set里的元素是不可以重复的。毕老师第十五天视频教程里就有相关的介绍。楼上的仁兄已经总结出来了。你可以参考参考。




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