zoukankan      html  css  js  c++  java
  • ArrayList,HashSet,SortedSet之间的区别是什么?

    今天看Redis官方案例,出现了列表和集合概念,列表在Java中指的就是List,集合在Java中指的就是Set,那么怎么实现列表和集合,以及它们有什么区别呢?

    我写了个Demo演示下:

    
    

    import java.util.ArrayList;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    import java.util.SortedSet;
    import java.util.TreeSet;

    
    

    public class ListDemo {

    
    

    public static void main(String[] args) {
    // TODO Auto-generated method stub

    
    

    //对比:Set是结合,List是列表
    //HashSet里面的值是是不可重复的,ArrayList里面的值可以重复
    //HashSet和ArrayList的数据都是无序的
    //TreeSet继承SortedSet,它是有序的。
    Set<String> set=new HashSet<String>();
    set.add("444");
    set.add("222");
    set.add("aaa");
    set.add("111");
    set.add("333");
    set.add("bbb");
    for(String str:set) {
    System.out.println(str);
    }
    System.out.println("------分割线------");
    SortedSet<String> sortedSet=new TreeSet<String>();
    sortedSet.add("444");
    sortedSet.add("222");
    sortedSet.add("aaa");
    sortedSet.add("111");
    sortedSet.add("333");
    sortedSet.add("bbb");
    for(String str:sortedSet) {
    System.out.println(str);
    }

    System.out.println("------分割线------");
    List<String> list=new ArrayList<String>();
    list.add("444");
    list.add("222");
    list.add("aaa");
    list.add("111");
    list.add("333");
    list.add("bbb");
    for(String str:list) {
    System.out.println(str);
    }

    }

    
    

    } 

    得出的结果如下所示:

    aaa
    111
    222
    333
    bbb
    444
    ------分割线------
    111
    222
    333
    444
    aaa
    bbb
    ------分割线------
    444
    222
    aaa
    111
    333
    bbb

    可以验证我的注释:

    HashSet里面的值是是不可重复的,ArrayList里面的值可以重复
    HashSet和ArrayList的数据都是无序的
    TreeSet继承SortedSet,它是有序的。

    是正确的。

     最后为了更好的理解,找了一张结构图供亲们参考:

  • 相关阅读:
    [LeetCode] Two Sum
    INTERESTING AND OBSCURE INHERITANCE ISSUES WITH CPP
    Changing the Overridden Method’s Characteristics
    Cpp多重继承会产生的问题
    [LeetCode] Copy List with Random Pointer
    [LeetCode] Merge k Sorted Lists
    [LeetCode] Swap Nodes in Pairs
    [LeetCode] Add Two Numbers
    [LeetCode] Merge Two Sorted Lists
    [LeetCode] Climbing Stairs (Sequence DP)
  • 原文地址:https://www.cnblogs.com/shuai7boy/p/12467318.html
Copyright © 2011-2022 走看看