java set 顺序

Python010

java set 顺序,第1张

在java语言中,提供多种不同的结构来组织对象,Set(集合)是其中的一种,本身是一个接口,其迭代时的顺序取决于其具体实现。典型的实现包括:

HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;

LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代;

TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。

扩展资料

Set<String>set = new TreeSet<String>()   

set.add("f")

set.add("a")

set.add("b")

set.add("c")

set.add("d")

set.add("e")       

System.out.println(set)

参考资料:百度百科 set (计算机学)

Set集合的排序

我们知道,Set集合是无序的,

可以使用TreeSet类,那么TreeSet进行排序的规则是怎样的呢?

1 TreeSet支持两种排序方式,自然排序和定制排序,在默认情况下,TreeSet采用自然排序.

自然排序:

TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间的大小关系,然后将集合的元素按升序排列,这种方式就是自然排序.

为什么集合元素有compareTo方法,因为集合元素对象实现了Comparable接口,该方法返回一个整数值,当一个对象调用该方法与另一个对象进行比较,例如:

obj1.compareTo(obj2)如果返回0,表示这两个对象相等,如果该方法返回一个正整数,表示obj1大于obj2如果该方法返回一个负整数,表示obj1小于obj2

所以需要使用TreeSet集合进行自然排序,元素必须实现Comparable接口,但是Java一些常用的类已经实现了该接口,例如:String Character Boolean Date Time

BigDecimal BigInteger等

如:

TreeSet<String>ts = new TreeSet<String>()

ts.add("b")

ts.add("c")

ts.add("a")

System.out.println(ts)

结果:a b c