21xrx.com
2024-05-19 13:39:45 Sunday
登录
文章检索 我的文章 写文章
Java中Set的数据结构及其使用
2023-06-19 10:50:28 深夜i     --     --
Set HashSet TreeSet LinkedHashSet 数据结构 元素去重 排序

Set是Java中常用的一种数据结构,Java中的Set和List都是继承自Collection接口,但Set的特点是不允许有重复的元素,其实现类包括HashSet、TreeSet和LinkedHashSet。

HashSet是一种基于哈希表实现的Set,它不保证元素的顺序,可以对元素进行快速的插入、删除和查询操作,这些操作的时间复杂度都为常数级别。


Set set = new HashSet<>();

set.add("hello");

set.add("world");

set.add("java");

set.add("hello");

System.out.println(set);

输出为:[world, java, hello]

从结果可以看出,Set中不允许有重复的元素,而且元素的顺序不一定与插入的顺序相同。

TreeSet是一种基于红黑树实现的Set,它可以对元素进行排序,其操作的时间复杂度为O(logn)级别。


Set set = new TreeSet<>();

set.add(3);

set.add(1);

set.add(2);

System.out.println(set);

输出为:[1, 2, 3]

从结果可以看出,TreeSet中的元素是有序的,且已经按照升序排列。

LinkedHashSet是一种基于哈希表和双向链表实现的Set,它不仅能够快速的插入、删除和查询元素,而且可以维护元素的插入顺序。


Set set = new LinkedHashSet<>();

set.add(3);

set.add(1);

set.add(2);

System.out.println(set);

输出为:[3, 1, 2]

从结果可以看出,LinkedHashSet中的元素按照插入的顺序排列。

总的来说,Java中的Set具有不允许重复元素、高效的插入、删除和查询、支持排序、支持维护元素插入顺序等特点,可以根据不同的需求选择不同的实现类。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复