
set有多种,hashset,treeset和linkedhashset比较常见,hashset最常用。linkedhashset是有序的,hashset是无序的。linkedhashset是以链表形式存放数据的,hashset是用hash散列存放数据的。list也分好几种,主要有arraylist和linkedlist,都是有序的,其中arraylist类比数组,linkedlist类比链表。arraylist是
线程不同步的,也就是说多个线程同时 *** 作一个list那么List中存放数据的一致性就不能保证。vector是线程同步的,也就是说线程安全的。Set
集合的
排序\x0d\x0a我们知道,Set集合是无序的,\x0d\x0a可以使用TreeSet类,那么TreeSet进行排序的规则是怎样的呢?\x0d\x0a1 TreeSet支持两种排序方式,自然排序和定制排序,在默认情况下,TreeSet采用自然排序.\x0d\x0a自然排序:\x0d\x0aTreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间的大小关系,然后将集合的元素按升序排列,这种方式就是自然排序.\x0d\x0a为什么集合元素有compareTo方法,因为集合元素对象实现了Comparable接口,该方法返回一个整数值,当一个对象调用该方法与另一个对象进行比较,例如:\x0d\x0aobj1.compareTo(obj2)如果返回0,表示这两个对象相等,如果该方法返回一个正整数,表示obj1大于obj2如果该方法返回一个负整数,表示obj1小于obj2\x0d\x0a所以需要使用TreeSet集合进行自然排序,元素必须实现Comparable接口,但是Java一些常用的类已经实现了该接口,例如:String Character Boolean Date Time\x0d\x0aBigDecimal BigInteger等\x0d\x0a如:\x0d\x0aTreeSet ts = new TreeSet() \x0d\x0ats.add("b") \x0d\x0ats.add("c") \x0d\x0ats.add("a") \x0d\x0aSystem.out.println(ts)\x0d\x0a结果:a b c
评论列表(0条)