1. 程式人生 > 實用技巧 >集合---單列集合Collection

集合---單列集合Collection

集合和陣列的區別

  1. 陣列可以存任何資料型別,集合只能存引用資料型別
  2. 如果集合想存基本資料型別,泛型中要定義它們的包裝類。
  3. 陣列的長度不可變,集合的長度可變

集合的體系結構

Collection集合

  1. 是單列集合的頂層介面
  2. 它提供更具體的子介面List和Set實現

Collection介面中提供的常用方法方法:

1  Collection<String> collection = new ArrayList<>();
2         collection.add("aaa");//向集合中新增元素
3         boolean b = collection.remove("aaa");//
刪除集合中的元素並返回布林型結果true表示刪除成功,false表示刪除失敗 4 int size = collection.size();//返回集合已存資料的個數 5 boolean b1 = collection.removeIf((String s) -> { 6 return s.length()==2; 7 });//根據條件刪除元素 8 boolean result = collection.contains("aaa");//判斷集合中是否有指定元素 9 collection.clear();//
清除集合內所有元素

Iterator迭代器(集合特有)

  1. 單列集合可以直接使用迭代器
  2. 建立一個迭代器物件:Iterator<String> it = list.iterator();預設指向集合第一個索引
  3. boolean hasNext(); 判斷集合索引處是否含有元素
  4. next(); 取出索引處元素,並將迭代器指向集合的索引位置向下推進一次
    public static void main(String[] args) {
          ArrayList<String> list=new ArrayList<>();
          list.add("sss");
          list.add(
    "sss"); list.add("sss"); list.add("sss"); list.add("sss"); list.add("sss"); list.add("sss"); Iterator<String> it = list.iterator(); while (it.hasNext()){ String s = it.next(); System.out.println(s); }

增強for

  • 格式:for(Object o:集合或陣列名){o就是從集合或陣列中的每一個第三方中間變數,可對其進行操作但修改不會改變原集合或者陣列}
  • 實現Iterable介面的類才可以使用迭代器和增強for(單列集合Collection實現了Iterable,雙列集合Map沒有實現)
  • 在迭代器中不能通過集合物件增刪元素,不然會發生併發錯誤

下面先講單列集合:

List(有序,有索引,可重複)

list集合的常用方法:

  1.    public static void main(String[] args) {
    List<String> list=new ArrayList<>();//多型形式,只能有List中的方法
            list.add("aaa");//
            list.add("aaa");
            list.add("aaa");
            list.add("aaa");
            list.add("aaa");
            list.add(3,"ooo");//在制定索引增加元素
            String s1 = list.get(0);//在制定索引獲得制定索引元素
            String remove = list.remove(1);//刪除指定索引元素
            String s3 = list.set(0, "nnn");//設定指定索引元素
    
    
        }

ArrayList(底層是陣列查詢快,增刪慢)

1.Arraylist第的底層結構是陣列,在ArrayList建立物件的時候,預設長度是0,也就是空集合,但是在add();方法執行後會把集合長度變為10,所以我們一般認為ArrayList集合的預設長度是10,當新增的元素的格式超過10的時候,會自動建立一個新的集合,長度為原來集合的1.5倍,然後把原來集合的所有資料全部賦值給新的集合。

2.size

size是集合建立時的底層變數,它的預設值是0,當每次使用add();方法向集合中新增元素的時候,size就會+1;指向下一個將要被新增元素的索引,所以size也可以理解為集合中當前擁有的元素個數。

LinkedList

1.LinkedList(底層結構是連結串列,查詢慢,增刪快)

  public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();
        list.addFirst("aaa");//新增元素到頭部
        list.add("sss");
        list.addLast("zzz");//新增元素到尾部
        list.removeFirst();//刪除頭部元素
        list.removeLast();//刪除尾部元素
        list.getFirst();//獲得頭部元素
        list.getLast();//獲得尾部元素


    }