Java圖書管理系統練習程序(四)

Java圖書管理系統練習程序(四)數組

本部分主要介紹List的基本操做與Java中泛型的使用。this

1、Java中泛型的使用對象

泛型,即「參數化類型」。一提到參數,最熟悉的就是定義方法時有形參,而後調用此方法時傳遞實參。那麼參數化類型怎麼理解呢?顧名思義,就是將類型由原來的具體的類型參數化,相似於方法中的變量參數,此時類型也定義成參數形式(可稱之爲類型參數),而後在使用/調用時傳入具體的類型(類型實參)。索引

泛型的本質是爲了參數化類型(在不建立新的類型的狀況下,經過泛型指定的不一樣類型來控制形參具體限制的類型)。也就是說在泛型使用過程當中,操做的數據類型被指定爲一個參數,這種參數能夠用在類、接口和方法中,分別被稱爲泛型類、泛型接口、泛型方法。接口

例1.編寫一個類,將任意一個整數(int)按下面格式輸出,「我是一個數:100」。內存

那麼這個類很好寫,以下rem

public class OutNumber {
    private int n;
    public OutNumber(int n){
        this.n=n;
    }
    public void printN(){
        System.out.println("我是一個數 :"+n);
    }
}

那麼接下來,咱們要再寫一個類,將一個字符串(String)也要按如下的格式輸出,那麼這個類也很簡單,代碼以下:文檔

public class OutSting {
    private String n;
    public OutSting(String n){
        this.n=n;
    }
    public void printN(){
        System.out.println("我是一個數:"+n);
    }
}

仔細分析以上兩個類,咱們發現,這兩個類對數據處理的方法是相同的,只是處理的類型是不一樣的。若是咱們能夠寫一個類,定義類時,並不指明數據的類型,在使用的時候再指明類型。那麼咱們能夠採用如下的方式。字符串

public class OutNumber<E> {
    private E n;
    public OutNumber(E n){
        this.n=n;
    }
    public void printN(){
        System.out.println("我是一個數:"+n);
    }
}
public class Demo1 {
    public static void main(String[] args) {
        OutNumber<Integer> o1=new OutNumber<>(10);
        o1.printN();
        OutNumber<String> o12=new OutNumber<>("字符串 ");
        o12.printN();
    }
}

這就是泛型的一種使用,稱爲泛型類get

1.泛型類

class 類名稱 <泛型標識>{

    private 泛型標識 成員變量名;

......

}

注意:

        泛型的類型參數只能是類類型(包括自定義類),不能是簡單類型(好比int與Integer)

        傳入的實參類型需與泛型的類型參數類型相同,

如OutNumber<Integer> o1=new OutNumber<>(10);

2.泛型接口

其使用方法與泛型類基本相同。

在本練習程序中,主要使用了泛型類和泛型接口。

2、List的基本操做

在本練習程序中,若是採用數組存放若干個用戶的信息,在聲明數組時,就必須同時聲明數組的長度,即咱們的程序只能存儲多少個用戶,若是咱們聲明的過大,會形成內存的浪費,若是咱們聲明的數組過小,即長度太短,會形成數據溢出的錯誤。

而List能夠解決這個問題。它的大小是動態可改變的,其存儲的數據類型也是多樣的。例如如下代碼

List<Student> lists=new ArrayList<>();

在以上代碼中,List是一個接口,ArrayList是該接口的一個實現類。經過以上代碼,咱們即建立一個存儲Student對象的集合。

1.向集合中添加、刪除元素

Student student=new Student(1,"張三丰","武當山");
lists.add(student);//將student對象添加到集合中
lists.remove(student);//將student對象從集合中移除

2.判斷List中是否包含某個元素

lists.contains(student)

3.根據元素在集合中的索引值取得元素

Student stu=lists.get(0);

4.取得對象在集合中的索引值

lists.indexOf(student);

5.判斷集合是否爲空

lists.isEmpty();

以上是在本練習程序中,用到的有關List集合的相關內容。其它的方法,能夠參考Java API文檔。

相關文章
相關標籤/搜索