zoukankan      html  css  js  c++  java
  • 【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
  • 相关阅读:
    垃圾处理现状
    买了个学生阿里云114元啊,安装mysql
    4 存储器
    3 总线
    崔大哥说基础很重要
    idea使用小积累mac
    为啥要用left join on where这样的东西
    观察者模式
    从shell中退出python命令
    locust性能测试入门
  • 原文地址:https://www.cnblogs.com/nick-huang/p/5484025.html
Copyright © 2011-2022 走看看