1、set集合是最简单的一种集合,集合中不按指定的方式排序,并且没有重复对象。
2、set接口主要有两个实现类:HashSet和TreeSet
(1)HashSet:是按照哈希算法来进行存取集合中的对象,存取的速度比较快。
(2)TreeSet:实现了SortedSet接口,具有排序的功能。
3、HashSet类是按照哈希算法来存取集合中的对象,具有良好的存取和查找性能。当向集合中加入一个对象时,HashSet
会调用对象的HashCode()方法来获得哈希码,然后根据这个哈希码进一步计算出对象在集合中的存放位置。
4、在Object类中定义了HashCode()和Equals()方法,Object类的equals()方法按照内存地址比较对象,因此如果
object1.equals(object2)为true,则表明object1变量和Object2变量实际上引用的是同一个对象,那么object1
与object2的哈希码也是相同的。
5、两种排序:
(1)自然排序:TreeSet调用对象的compareTo()方法比较集合中对象的大小,然后进行升序排列,这种排序的方式称为自然排序。
Comparable接口有一个compareTo(Object obj)方法,返回的是整数类型。
对于表达式x.compareTo(y),
如果返回值为0,则表示x和y相等;
如果返回值大于0,则表示x大于y;
如果返回值小于0,则表示x小于y;
(2)客户化排序Comparetor有个compare(Type x,Type y)方法,用于比较两个对象的大小。
当compare(x,y)的返回值大于0时,表示x大于y;
当compare(x,y)的返回值小于0时,表示x小于y;
当compare(x,y)的返回值等于0时,表示x等于y;