21xrx.com
2025-03-24 01:09:49 Monday
文章检索 我的文章 写文章
Java Set集合及其实现类
2023-06-10 22:26:15 深夜i     12     0
Java集合 HashSet TreeSet LinkedHashSet

我最近在学习Java集合,其中set集合让我深感其实用性。set集合是一种不允许有重复元素的集合,常用的实现类有HashSet、TreeSet和LinkedHashSet。

HashSet是基于哈希表实现的,最常用的实现类之一,插入、删除和查找的时间复杂度都是常数级别的O(1),但是遍历的效率比较低下。如下是HashSet的代码例子:

Set
  set = new HashSet<>();
 
set.add("apple");
set.add("banana");
set.add("orange");
set.add("apple");//不会被添加进去
for (String s : set) {
  System.out.println(s);
}

TreeSet基于红黑树实现,插入、删除和查找操作的时间复杂度都是O(logn),而且TreeSet还提供了一些有用的方法,例如first()方法获取最小的元素,last()方法获取最大的元素等等。如下是TreeSet的代码例子:

Set
  set = new TreeSet<>();
 
set.add("apple");
set.add("banana");
set.add("orange");
set.add("apple");//不会被添加进去
for (String s : set) {
  System.out.println(s);
}

LinkedHashSet是基于哈希表和链表实现的,它具有HashSet的查找速度和TreeSet的遍历有序性。如下是LinkedHashSet的代码例子:

Set
  set = new LinkedHashSet<>();
 
set.add("apple");
set.add("banana");
set.add("orange");
set.add("apple");//不会被添加进去
for (String s : set) {
  System.out.println(s);
}

总结来说,set集合是Java集合框架中非常有用的一种集合类型,它可以用于去重、排序等操作。需要根据实际需求来选择合适的实现类。

  
  

评论区

    相似文章