1. 程式人生 > 其它 >|NO.Z.00053|——————————|BigDataEnd|——|Java&集合類庫.V01|----------------------------------------------|Java.v01|泛型機制.v01|概念程式設計|

|NO.Z.00053|——————————|BigDataEnd|——|Java&集合類庫.V01|----------------------------------------------|Java.v01|泛型機制.v01|概念程式設計|



[BigDataJava:Java&集合類庫.V01]                                                                             [BigDataJava.核心類庫] [|章節五|集合類庫|泛型機制.一|概念|程式設計使用|]








一、泛型機制的基本概念
### --- 基本概念

——>        通常情況下集合中可以存放不同型別的物件,是因為將所有物件都看做Object型別放入的,
——>        因此從集合中取出元素時也是Object型別,為了表達該元素真實的資料型別,
——>        則需要強制型別轉換,而強制型別轉換可能會引發型別轉換異常。
——>        為了避免上述錯誤的發生,從Java5開始增加泛型機制,
——>        也就是在集合名稱的右側使用<資料類>
——>        的方式來明確要求該集合中可以存放的元素型別,若放入其它型別的元素則編譯報錯。
——>        泛型只在編譯時期有效,在執行時期不區分是什麼型別。
二、程式設計程式碼
package com.yanqi.task15;

import java.util.LinkedList;
import java.util.List;

public class ListGenericTest {

    public static void main(String[] args) {

        // 1.準備一個支援泛型機制的List集合,明確要求集合中的元素是String型別
        List<String> lt1 = new LinkedList<String>();
        // 2.向集合中新增元素並列印
        lt1.add("one");
        System.out.println("lt1 = " + lt1); // [one]
        //lt1.add(2);  Error
        // 3.獲取集合中的元素並列印
        String s = lt1.get(0);
        System.out.println("獲取到的元素是:" + s); // one

        System.out.println("----------------------------------------------------");
        // 2.準備一個支援Integer型別的List集合
        List<Integer> lt2 = new LinkedList<Integer>();
        lt2.add(1);
        lt2.add(2);
        //lt2.add("3"); Error
        System.out.println("lt2 = " + lt2); // [1, 2]
        Integer integer = lt2.get(0);
        System.out.println("獲取到的元素是:" + integer); // 1

        System.out.println("----------------------------------------------------");
        // Java7開始的新特性: 菱形特性   就是後面<>中的資料型別可以省略
        List<Double> lt3 = new LinkedList<>();
        // 筆試考點
        // 試圖將lt1的數值賦值給lt3,也就是覆蓋lt3中原來的數值,結果編譯報錯:集合中支援的型別不同
        //lt3 = lt1; Error
    }
}
三、編譯列印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=54636:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task15.ListGenericTest
lt1 = [one]
獲取到的元素是:one
----------------------------------------------------
lt2 = [1, 2]
獲取到的元素是:1
----------------------------------------------------

Process finished with exit code 0








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)