1. 程式人生 > >Java中集合泛型帶來了什麼好處?

Java中集合泛型帶來了什麼好處?

 首先,瞭解一下Java關於泛型的概念。泛型,在C++中被稱為模板,就是一種抽象的程式設計方式。當我們定義類和方法的時候,可以用一種通用的方式進行定義,而不必寫出具體的類,這些未知的東西會在真正使用的時候在確定。

  對於集合類來說,它們可以存放各種型別的元素。如果在存放之前,就能確定元素的型別,那麼就可以更加直觀,也讓程式碼更加簡潔。示例程式碼如下:

public class Test4 {

	public static void main(String[] args) {
		List list=new ArrayList();//無泛型建立連結串列物件
		list.add("a");
		list.add("b");
		Iterator it=list.iterator();//獲取連結串列迭代器
		while (it.hasNext()) {
			Object obj=it.next();//獲取元素,型別為Object
			String s=(String) obj;
			System.out.println(s);
		}
		List<String>list2=new ArrayList<>();//String泛型連結串列物件
		list2.add("c");
		list2.add("d");
		//用foreach進行遍歷,型別轉換為String
		for (String str : list2) {
			System.out.println(str);
		}
	}
}

在以上程式碼中,list沒有使用泛型,它所存放的元素都是Object型別,在使用的時候還需要進行型別的強制轉換。而泛型連結串列物件list2,它在建立的時候就提供了元素的型別,因此,在獲取元素的時候,型別會自動轉換,這也是集合使用泛型的最直接的好處。

說明:java的泛型是停留在編譯層的,也就是說JVM在對待泛型資料的時候,依然會把它們看成是Object型別,只不過在使用這些元素的時候,JVM會自動幫助我們進行相應的型別轉換。

總結:

集合使用泛型之後,可以達到元素型別明確的目的,避免了手動型別轉換的過程,同時,也讓我們更加明確容器儲存的是什麼型別的資料。