天天看點

Java知識【Collection集合】

目錄

​​1.1:數組和集合的差別【了解】​​

​​1.2:集合類體系結構【了解】​​

​​1.3:Collection集合概述和使用【應用】​​

​​1.4:Collection集合的周遊【應用】​​

​​1.5:增強for循環【應用】​​

1.1:數組和集合的差別【了解】

  • 相同點

    都是容器,可以存儲多個資料

  • 不同點
  • 數組的長度是不可變的,集合的長度是可變的
  • 數組可以存基本資料類型和引用資料類型

    集合隻能存引用資料類型,如果要存基本資料類型,需要存對應的包裝類

1.2:集合類體系結構【了解】

Java知識【Collection集合】

1.3:Collection集合概述和使用【應用】

  • Collection集合概述
  • 是單例集合的頂層接口,它表示一組對象,這些對象也稱為Collection的元素
  • JDK 不提供此接口的任何直接實作.它提供更具體的子接口(如Set和List)實作
  • 建立Collection集合的對象
  • 多态的方式
  • 具體的實作類ArrayList
  • Collection集合常用方法
方法名 說明
boolean add(E e) 添加元素
boolean remove(Object o) 從集合中移除指定的元素
boolean removeIf(Object o) 根據條件進行移除
void clear() 清空集合中的元素
boolean contains(Object o) 判斷集合中是否存在指定的元素
boolean isEmpty() 判斷集合是否為空
int size()

1.4:Collection集合的周遊【應用】

  • 疊代器介紹
  • 疊代器,集合的專用周遊方式
  • Iterator<E> iterator(): 傳回此集合中元素的疊代器,通過集合對象的iterator()方法得到
  • Iterator中的常用方法

    boolean hasNext(): 判斷目前位置是否有元素可以被取出 ​ E next(): 擷取目前位置的元素,将疊代器對象移向下一個索引位置

  • Collection集合的周遊
public class IteratorDemo1 {
    public static void main(String[] args) {
        //建立集合對象
        Collection<String> c = new ArrayList<>();

        //添加元素
        c.add("hello");
        c.add("world");
        c.add("java");
        c.add("javaee");

        //Iterator<E> iterator():傳回此集合中元素的疊代器,通過集合的iterator()方法得到
        Iterator<String> it = c.iterator();

        //用while循環改進元素的判斷和擷取
        while (it.hasNext()) {
            String s = it.next();
            System.out.println(s);
        }
    }
}      
public class IteratorDemo2 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("d");

        Iterator<String> it = list.iterator();
        while(it.hasNext()){
            String s = it.next();
            if("b".equals(s)){
                //指向誰,那麼此時就删除誰.
                it.remove();
            }
        }
        System.out.println(list);
    }
}      

1.5:增強for循環【應用】

  • 介紹
  • 它是JDK5之後出現的,其内部原理是一個Iterator疊代器
  • 實作Iterable接口的類才可以使用疊代器和增強for
  • 簡化數組和Collection集合的周遊
  • 格式

    for(集合/數組中元素的資料類型 變量名 : 集合/數組名) {

    // 已經将目前周遊到的元素封裝到變量中了,直接使用變量即可

    }

  • 代碼
public class MyCollectonDemo1 {
    public static void main(String[] args) {
        ArrayList<String> list =  new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");

        //1,資料類型一定是集合或者數組中元素的類型
        //2,str僅僅是一個變量名而已,在循環的過程中,依次表示集合或者數組中的每一個元素
        //3,list就是要周遊的集合或者數組
        for(String str : list){
            System.out.println(str);
        }
    }
}