※星※ JAVA 泛型

泛型
表示集合中 保存的數據的類型
< E > 就代表 要保存的元素的類型
後面的 <> 要跟前面的 <> 泛型保持一致
jdk1.7 菱形泛型: 前面聲明瞭泛型 後面的泛型可以不寫
默認類型一致

ArrayList<String> list = new ArrayList<>();

這樣就表明了集合中要保存的數據的類型是String類型

ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        // 用迭代器遍歷
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String next = iterator.next();
            System.out.println(next);

而且在聲明瞭泛型後 還可以省去強轉類型的麻煩

寫泛型可以讓類型轉換異常在編譯時就會報錯

泛型類 (聲明時 <> 中的字母可以隨便定義)
泛型類的類型 在初始化這個類的對象時確定

public class A<M> {
}

聲明不同泛型的方法 在調用泛型方法時
指定泛型的類型
只有聲明過的泛型 才能使用

public<Z> void print(Z z) {
        System.out.println(z);
    }

靜態方法中不能直接使用泛型類的泛型
因爲在靜態方法被加載的時候
泛型類的對象可能還沒有被創建出來
非要調用時 可以重新聲明一個泛型

public static<W> void fun(W w) {
        System.out.println(w);
    }

? extends E(向下限定) —— 給定上限(E)
? (是子類) 繼承 E(是父類)
?只能是E類的 子類

? super E(向上限定) —— 給定下限(E)
?(是父類) E是子類
?只能是E類的父類

int … num 相當於傳入的參數是個數組
方法可以接收多個參數 int … num 只能是方法參數的最後一個

public static void fun(int a,int ... num) {
}

集合中的刪除
增強for循環一般只用來遍歷
1.不使用迭代器
2.使用迭代器

不使用迭代器遍歷
如果集合中有b 就把b刪除

ArrayList< String > list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).equals("b")) {
                // i-- 先參與運算 再自減
                list.remove(i--);
            }
        }
        System.out.println(list);
    }

迭代器刪除
如果集合中有b 就把b刪除

ArrayList< String > list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String string = (String) iterator.next();
            if (string.equals("b")) {
                iterator.remove();
            }
        }
        System.out.println(list);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章