Java 集合之泛型詳解

2021-08-14 21:45:16 字數 3438 閱讀 1698

泛型表示集合中儲存資料的型別

/*

* 儲存字串

* arrayliste就代表 要儲存的元素型別

* 後面的尖括號 要跟前面填的泛型保持一致

* 如果前面宣告了泛型 後面泛型可以省略不寫 省略不寫 表示型別一致

* jdk1.7 菱形泛型

*/public static void fun1() }/*

* 寫泛型編譯期就會報錯

*/public static void fun2()

泛型類(泛型類宣告時  尖括號中的字母 可以隨便定義)

泛型類的型別在初始化這個類的物件的時候確定

**示例:

public

class worker

public

void

sett(t t)

// 普通成員方法

public

void

sayhi(t t)

// 宣告不同泛型的方法 在呼叫泛型方法的時候 指定泛型的型別

// 宣告乙個泛型 只有宣告過 才能使用

public

void

print(z z)

// 靜態方法不能直接使用t,當你呼叫靜態方法的時候可能還沒有物件,沒有物件就沒有指定泛型所以不能用

public

static

void

fun(r r)

// 工作方法

public

void

work()

}public

static

void

fun3()

// 泛型介面

inte***ce

intera

// 實現類

class

interaimpl

implements

intera

}public

static

void main(string args)

? extends e (向下限定)

?是子類 繼承 e是父類 ?只能是 e類 的子類

? super e(向上限定)

?是父類 e是子類 ?只能是e類的 父類

? extends e (向下限定) **:

/** 需求:

* 建立乙個儲存人的集合 存2人

* 建立乙個儲存學生的集合 存2人

*/arraylistpersons = new arraylist<>();

persons.add(new person("qwe", 11));

persons.add(new person("asd", 15));

arrayliststudents = new arraylist<>();

students.add(new student("zxc", 20));

students.add(new student("rty", 21));

// 學生的集合 全部新增到 人的集合中

// ? extends person 只能填person的子類

// students.addall(persons);

persons.addall(students);

system.out.println(persons);

int ... num 相當於傳入的引數是個陣列,可以接受多個引數 但是只能是方法引數的最後乙個

**: public static void fun2(int ... num)

}// 呼叫方式一 直接傳入陣列

int array = ;

fun2(array);

// 呼叫方式二 傳入多個數

fun2(1, 2, 3, 4, 5, 6, 7, 8, 9);

使用arrays類方法把陣列轉換為集合:

int array = ;// 沒有進行自動裝箱

// 把陣列當做集合中的乙個元素轉為了集合

list

aslist = arrays.aslist(array);

system.out.println(aslist);

integer array2 = ;

list

aslist2 = arrays.aslist(array2);

system.out.println(aslist2);

string array3 = ;

// 使用aslist陣列轉集合 得到乙個集合

list

aslist3 = arrays.aslist(array3);

boolean contains = aslist3.contains("wanglong");

system.out.println(aslist3);

system.out.println(contains);

注意:這個集合不允許進行新增或刪除的操作,可以呼叫集合的其他方法

1.不使用迭代器

// 建立乙個集合

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++)

}system.out.println(list);

2.使用迭代器

// 建立乙個集合

arraylist<

string

>

list

=new arraylist<>();

list

.add("a");

list

.add("b");

list

.add("c");

list

.add("b");

list

.add("d");

list

.add("e");

iterator<

string

> iterator =

list

.iterator();

while (iterator.hasnext())

}system.out.println(list);

java泛型集合

首先我們先來了解什麼是集合 集合就是用來組織和管理物件。集合特點 1.集合儲存的只能是物件 2.使用物件的引用,物件的儲存還是在堆記憶體中 3.儲存不同型別的資料 眾所周知,集合可以儲存不同型別的資料,而對於不同型別而言就會涉及到型別轉換,所以但是集合而言就會存在型別轉換問題,所以我們引用了泛型,使...

java基礎之泛型詳解

public class a public t get 當使用者建立a類物件時,就會給a類的型別變數t賦值。如new a 這說明a類中所有的t都會被string替換。public class a public string get 泛型類說明這個類有型別變數,在建立這個類物件時需要給型別變數賦值。泛...

Java 泛型詳解

普通泛型 public class point public void setvar t var public string tostring public class notepad public v getvalue public void setkey k key public void se...