当前位置: 首页 > 面试题库 >

默认设置是否排序?

哈沛
2023-03-14
问题内容

更新时间

    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]

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

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

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

请给我一些想法。谢谢


问题答案:

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

Set进一步提供关于它的元素的总体排序。使用元素的自然顺序或Comparator
在排序集创建时通常提供的元素对元素进行排序。集合的迭代器将以升序顺序遍历集合。提供了一些附加操作以利用订购的优势。(此接口是的设置类似物SortedMap。)

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



 类似资料:
  • 我很好奇是否可以将iOS设置(例如位置/图片)重置为默认设置,这样用户每次都会被问到是否允许位置或相机使用。 目前,我正在尝试用Ionic/Cordova做这件事。 也许你们中有人知道怎么做,或者能告诉我这是不是可能的。

  • 什么是Locale Locale是一组描述世界上某一特定区域文本格式和语言习惯的设置的集合。locale名通常由三个部分组成:第一部分,是一个强制性的,表示语言的缩写,例如"en"表示英文或"zh"表示中文。第二部分,跟在一个下划线之后,是一个可选的国家说明符,用于区分讲同一种语言的不同国家,例如"en_US"表示美国英语,而"en_UK"表示英国英语。最后一部分,跟在一个句点之后,是可选的字符集

  • 每次启动flask应用程序时,环境变量都设置为production。我想让它默认设置为开发模式。否则,每次启动应用程序时,我都必须运行。。 导出FLASK\u ENV=development 如何在每次启动时将环境的默认值设置为开发? 编辑:我正在树莓圆周率的虚拟环境中使用烧瓶。

  • Apache Kafka文档说明: 内部Kafka Streams使用者max.poll.interval.ms默认值已从300000更改为integer.max_value

  • 10.6. 默认事务设置 默认情况下事务设置(语义)如下: 异常处理:RuntimeException 导致回滚,而普通异常(checked )则不会 事务可读可写 隔离级别:TransactionDefinition.ISOLATION_DEFAULT 超时设置:TransactionDefinition.TIMEOUT_DEFAULT org.springframework.transacti

  • 所以,我一直在读C++标准,找到了[defns.Undefined](3.27,在我正在读的C++17草案中,请注意,当我在这里引用C++17时,我在其他标准中发现了类似的措辞)--这是未定义行为的定义。我注意到这样的措辞(强调我的): 注意:当本国际标准省略任何行为的明确定义时,或者当程序使用错误的构造或错误的数据时,可能会出现未定义的行为 现在,想想看,这有点道理。这有点像是说,如果标准没有给