首页 > 试题广场 >

下面哪个Set类是排序的?

[单选题]
下面哪个Set类是按元素排好序的?
  • LinkedHashSet
  • TreeSet
  • HashSet
  • AbstractSet
TreeSet自然排序,LinkedHashSet按添加顺序排序
发表于 2019-08-21 13:09:49 回复(7)
ttt
发表于 2019-04-02 15:14:43 回复(0)
LinkedHashSet
继承于HashSet、又基于 LinkedHashMap 来实现
TreeSet
使用二叉树的原理对新 add()的对象按照指定的顺序排序(升序、降序),每增加一个对象都会进行排序,将对象插入的二叉树指定的位置。
HashSet
存储元素的顺序并不是按照存入时的顺序(和 List 显然不同) 而是按照哈希值来存的所以取数据也是按照哈希值取得


编辑于 2019-11-18 09:33:58 回复(3)
题目是排序不是有序。错选A
发表于 2019-08-21 11:27:49 回复(1)

如上图:

(01) Set 是继承于Collection的接口。它是一个不允许有重复元素的集合。
(02) AbstractSet 是一个抽象类,它继承于AbstractCollection。AbstractCollection实现了Set中的绝大部分函数,为Set的实现类提供了便利。
(03) HastSet 和 TreeSet 是Set的两个实现类。
        HashSet依赖于HashMap,它实际上是通过HashMap实现的。HashSet中的元素是无序的。
        TreeSet依赖于TreeMap,它实际上是通过TreeMap实现的。TreeSet中的元素是有序的。

(04) LinkedHashSet继承于HashSet,是具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。此实现与 HashSet 的不同之外在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,即按照将元素插入到 set 中的顺序(插入顺序)进行迭代。

来源:https://www.cnblogs.com/CherishFX/p/4788432.html
发表于 2020-06-18 14:10:39 回复(2)
1.HashSet的性能总比TreeSet好。
2特别是最常用的添加、查找元素等操作时,用HashSet
3.当需要一个保持排序的Set时,用TreeSet.
4.遍历集合元素时,用LinkedHashSet
5.EnumSet是所有Set实现类中性能最好的,但它只能保存同一个枚举类的枚举值作集合元素。
6.Set的3个实现类HashSet,TreeSet和EnumSet都是线程不安全,则必须手动保证该Set集合的同步性。通常可以通过Collection工具类的synchronizedSortedSet方法来"包装"该Set集合。此操作最好在创建时进行,以防止对Set集合的意外非同步访问。
发表于 2020-02-04 21:03:19 回复(0)
TreeSet可以自动排序,LinkedHashSet按照添加元素的顺序进行排序
发表于 2021-12-12 11:12:30 回复(0)
这是JAVA里的东西吧?

发表于 2019-09-23 11:20:43 回复(0)
注意题干是排好序
发表于 2021-12-09 10:56:00 回复(0)
linkedhashset和treeset都是有序的,但是,只有treeset是按内容而不是插入顺序排序的
发表于 2020-04-01 19:28:58 回复(0)
TreeSet有两种排序:1.默认使用自然排序,通过实现Comparable接口的compareTo()实现,用于自定义类排序规则;2.定制排序,通过实现Comparator接口的compare()实现,用于修改第三方定义类的排序规则。
发表于 2023-09-08 15:18:04 回复(0)
set 分为 TreeSet , HashSet , LinkedHashSet
TreeSet 特点:底层是红黑树结构
    1.不可以存储重复元素,没有索引
    2.可以将元素按照规则进行排序
    3.TreeSet():根据其元素的自然排序进行排序
       TreeSet(Comparator comparator):根据指定的比较器进行排序
HashSet 特点:无顺序不重复  底层是哈希表
LinkedHashSet 特点:有顺序不重复 底层是 哈希表+双向列表+维护数组

这题选 TreeSet 
                       
发表于 2023-02-22 16:19:19 回复(0)
1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;  2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;  3.其次,初始化父类的普通成员变量和代码块,在执行父类的构造方法; 4.最后,初始化子类的普通成员变量和代码块,在执行子类的构造方法;
发表于 2021-07-20 08:27:15 回复(0)
确实要记下。 linked,按放入顺序。 tree自然排序, hash按哈希值。 原理是啥
编辑于 2021-10-19 08:33:06 回复(0)
不懂
编辑于 2024-04-10 15:24:04 回复(0)
不会哈哈
编辑于 2024-04-03 17:07:50 回复(0)
TreeSet 两种排序方法:自然排序和定制排序。默认情况下,TreeSet 采用自然排序
发表于 2023-08-24 19:23:07 回复(0)
TreeSet会调用集合元素的compareTo (Object obj)方法来比较元素之间的大小关系,然后将集合的元素按升序排列,这种方式是自然排序.
发表于 2023-06-27 20:33:46 回复(0)
TreeSet使用二叉树对元素进行排序,TreeSet使用二叉树对元素进行排序
发表于 2023-06-03 12:01:27 回复(0)
好像hashmap也是自然排序的吧,不是按照添加的顺序排序的,会自动按照key值大小排序
发表于 2023-02-02 20:52:17 回复(0)