【Java】常见的Set类型,HashSet、TreeSet、LinkedHashSet

HashSet,锋芒毕露,我们最常用到。其他两个,我们较少用到,今天,我们看看他们的区别。

 

复制代码
import java.util.HashSet;
import java.util.Set;


public class HashSetTester {

    public static void main(String[] args) {
        Set<Integer> set = new HashSet<Integer>();
        
        set.add(15);
        set.add(31);
        set.add(12);
        set.add(123);
        set.add(42);
        
        for (Integer i : set) {
            System.out.println(i);
        }
    }

}
View Code
复制代码

 

HashSet,能够快速查找键值。

看它的实现可知,依赖于HashMap的实现。打印的日志:

42
123
12
31
15

 

如果修改为使用TreeSet,日志是这样的。

TreeSet底层维护的是一个红黑树,维护有序的序列,元素必须实现Comparable接口。

12
15
31
42
123

 

而使用LinkedTreeSet,日志又是这样的。

保持插入的次序,又支持快速查找键值。

LinkedTreeSet是继承TreeSet构造方法,而TreeSet的构造方法里使用了LinkedHashMap,可见原理隐藏在LinkedHashMap里面。

15
31
12
123
42

 

posted @   nick_huang  阅读(442)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示