泛型表示集合中儲存資料的型別
/*
* 儲存字串
* 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...