集合之List,Set。

List接口介紹及特色

  • list接口繼承與Collection接口,list集合中容許有重複的元素,全部的元素都是以一種線性的方式進行存儲的數組

  • list經過索引來訪問集合中的元素性能

  • list集合中的元素是存儲有序的spa

List接口中經常使用方法

  • List接口繼承自Collection接口,因此list中有Collection接口中全部的方法code

  • list中特有的方法對象

    • public void add(int index,E element):將指定元素element添加到指定位置blog

    • public E get(int index):獲取指定索引位置上的元素繼承

    • public E remove(int index):移除列表中指定元素,返回的是被移除的元素索引

    • public E set(int index,E element):用指定元素替換集合中指定位置的元素,返回值是更新前的元素接口

     1  public static void main(String[] args) {
     2         List list = new ArrayList();
     3         list.add("熊大");
     4         list.add("熊二");
     5         list.add("熊小小");
     6         //將 熊老三添加到第三個元素
     7         list.add(2,"熊老三");
     8         System.out.println(list);//熊老三
     9         //獲取索引爲3的元素
    10         Object o = list.get(3);
    11         System.out.println(o);//熊小小
    12         //移除熊老三
    13         Object remove = list.remove(2);
    14         System.out.println(remove);//熊老三
    15         //用光頭強替換熊二
    16         Object o1 = list.set(1, "光頭強");
    17         System.out.println(o1);//熊二
    18     }
    19 } 

List子類

  • ArrayListelement

    • ArrayList集合數據存儲的結構是數組結構。元素增刪慢,查詢快。

  • LinkedList

    • LinkedList是存儲結構是鏈表結構,元素增刪快,查詢相對來講慢一點。

      • public void addFirst(E e) :將指定元素插入此列表的開頭。

      • public void addLast(E e) :將指定元素添加到此列表的結尾。

      • public E getFirst() :返回此列表的第一個元素。

      • public E getLast() :返回此列表的最後一個元素。

      • public E removeFirst() :移除並返回此列表的第一個元素。

      • public E removeLast() :移除並返回此列表的最後一個元素。

      • public E pop() :今後列表所表示的堆棧處彈出一個元素。

      • public void push(E e) :將元素推入此列表所表示的堆棧。

      • public boolean isEmpty() :若是列表不包含元素,則返回true

    public static void main(String[] args) {
            LinkedList<String> list =  new LinkedList();
            //添加元素
            list.addFirst("光頭強");
            list.addFirst("吉吉國王");
            list.addFirst("小猴子");
            System.out.println(list);//小猴子, 吉吉國王, 光頭強
            //獲取第一個元素
            String first = list.getFirst();
            System.out.println(first);//小猴子
            //獲取最後一個元素
            String last = list.getLast();
            System.out.println(last);//光頭強
            //刪除第一個元素
            String removeFirst = list.removeFirst();
            System.out.println(removeFirst);//小猴子
            //刪除最後一個元素
            String removeLast = list.removeLast();
            System.out.println(removeLast);//光頭強
            //判斷集合是否爲空
            while (!list.isEmpty()){//判斷集合是否爲空
                System.out.println(list.pop());//彈出集合中棧頂的元素---吉吉國王
            }
    ​
            System.out.println(list);//[]
        }

     

Set接口及其介紹

  • set接口繼承於Collection接口,包含全部Collection接口的方法

  • set集合中存儲的元素無序

  • set集合中的元素是不可重複的

set子類
  • HashSet集合

    • hashSet是set接口的一個子類,所存儲的元素是不能夠重複的,而且是無序的。

    • hashSet是根據對象的hash值來肯定元素存儲的位置,所以具備良好的存取和查找性能,保證元素惟一的方式是依賴於:hashcode()和equals( )方法

     1 public static void main(String[] args) {
     2         HashSet<String> set = new HashSet<>();
     3         set.add(new String("NBA"));
     4         set.add("MLB");
     5         set.add("NBL");
     6         set.add("CBA");
     7         set.add("NBA");
     8         for (String s : set) {
     9             System.out.println(s);
    10         }
    11     }

    輸出結果,只有一個NBA:

    MLB
    CBA
    NBL
    NBA

     

  • HashSet集合存儲數據的結構(哈希表)

  

hashSet存儲原理

  

  • LinkedHashSet

    • hashSet能夠保證元素不重複,可是元素的存取是無序的,爲了解決這個無序問題,咱們能夠纔去LinkedHashSet來解決這個問題。

    • LinkedHashSet是鏈表和哈希表組合的一個數據存儲結構

     1 public static void main(String[] args) {
     2         Set<String> set = new LinkedHashSet<>();
     3         set.add("MLB");
     4         set.add("NBL");
     5         set.add("CBA");
     6         set.add("NBA");
     7         for (String s : set) {
     8             System.out.println(s);
     9         }
    10     }
    11 12 輸出結果:
    13     MLB
    14     NBL
    15     CBA
    16     NBA

     

關與list,set的知識就先寫這麼多了,具體實際應用仍是但願你們靈活運用~~

相關文章
相關標籤/搜索