21xrx.com
2024-12-22 23:35:01 Sunday
登录
文章检索 我的文章 写文章
Java Set集合及其实现类
2023-06-10 22:26:15 深夜i     --     --
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集合框架中非常有用的一种集合类型,它可以用于去重、排序等操作。需要根据实际需求来选择合适的实现类。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章