默认设置是否排序? [英] Set by Default Sorted or Not?

查看:65
本文介绍了默认设置是否排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

已更新:

    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, 4, 5, A, B, 7, a, 8, 9, s, x]
[1, 4, 5, A, B, 7, a, 8, 9, s, x]

添加时需要一些信息来设置默认的排序整数值,但是如果我将字符串添加到Set中,则默认情况下不会进行排序.

Need some information that Set default sort Integer value when we add but if i Add String to Set it would not sort by default.

更新:并且Caps字母将在运行多次后始终排序.

Update: and Also Caps letter would always Sorted after runs many times.

java版本"1.6.0_26"Java(TM)SE运行时环境(内部版本1.6.0_26-b03)Java HotSpot(TM)客户端VM(内部版本20.1-b02,混合模式,共享)

java version "1.6.0_26" Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)

请给我一些想法.谢谢

推荐答案

HashSet 不保证其内容将以任何方式排序.确实有这样的保证的集合有一个特殊的接口:它称为

HashSet does not guaranteed that its contents will be sorted in any way. There is a special interface for sets that do provide such a guarantee: it's called SortedSet:

Set ,它进一步提供了其元素的总体排序.这元素使用自然顺序或比较器进行排序通常在排序集创建时提供.集合的迭代器将以元素升序遍历集合.其他几个提供操作以利用排序.(这接口是 SortedMap 的设置类似物.)

A Set that further provides a total ordering on its elements. The elements are ordered using their natural ordering, or by a Comparator typically provided at sorted set creation time. The set's iterator will traverse the set in ascending element order. Several additional operations are provided to take advantage of the ordering. (This interface is the set analogue of SortedMap.)

在Java 6中,有两个类实现了此接口: ConcurrentSkipListSet TreeSet .

In Java 6, there are two classes that implement this interface: ConcurrentSkipListSet and TreeSet.

这篇关于默认设置是否排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆