问题描述
HashSet
不保证其内容将以任何方式排序。确实有这样的保证的集合有一个特殊的接口:它被称为SortedSet
:
甲
Set
进一步提供关于它的元素的总体排序。使用元素的自然顺序或Comparator
在排序集创建时通常提供的元素对元素进行排序。集合的迭代器将以升序顺序遍历集合。提供了一些附加操作以利用订购的优势。(此接口是的设置类似物SortedMap
。)
在Java
6中,有两个类实现了此接口:ConcurrentSkipListSet
和TreeSet
。
解决方法
更新时间 :
Set s = new HashSet();
s.add(1);
s.add(5);
s.add(4);
s.add(9);
s.add(7);
s.add(8);
s.add("b");
s.add("a");
s.add("B");
s.add("A");
s.add("s");
s.add("x");
s.add("d");
System.out.println(s);
s.remove("b");
s.remove("d");
System.out.println(s);
输出:
[1,d,4,b,5,A,B,7,a,8,9,s,x]
[1,x]
当我们添加时,需要一些信息来设置默认排序整数值,但是如果我将字符串添加到设置,则默认情况下不会排序。
更新: 并且Caps字母将在运行多次后始终进行排序。
java版本“ 1.6.0_26” Java™SE运行时环境(内部版本1.6.0_26-b03)Java
HotSpot™客户端VM(内部版本20.1-b02,混合模式,共享)
请给我一些想法。谢谢