不使用泛型的演示
package Day01;
import java.util.ArrayList;
import java.util.Iterator;
public class Demo01 {
public static void main(String[] args1) {
// TODO Auto-generated method stub
Show01();
}
/*
* 創建集合對象,不使用泛型
* 好處:不使用泛型,集合默認類型是object類型,可以存儲任意類型的數據
* 壞處:不安全,會引發異常
*/
private static void Show01() {
// TODO Auto-generated method stub
ArrayList list = new ArrayList<>();
list.add("abc");
list.add(1);
//使用迭代器遍歷list集合
//獲取迭代器
Iterator iterator = list.iterator();
//使用hasnext和next來遍歷集合
while (iterator.hasNext()) {
Object object=iterator.next();
System.out.println(object);
//想要使用string特有方法length來獲取字符串長度,不能使用 多態object obj = "abc"
//需要向下轉型
//會拋出ClassCastException類型轉換異常,不能把iterator轉化爲string類型
String s =(String)object;
System.out.println(s.length());
}
}
}
使用泛型的演示
public class Demo01 {
public static void main(String[] args1) {
// TODO Auto-generated method stub
Show02();
}
/*
* 創建集合對象,使用泛型
* 好處:
* 1、避免了類型轉換的麻煩,存儲什麼類型取出什麼類型
* 2、把運行期出現的異常提升到了編譯期
* 弊端:
* 泛型與所存儲的類型相一致
*/
private static void Show02() {
// TODO Auto-generated method stub
ArrayList<String> list = new ArrayList<>();
list.add("lioyo");
//list.add(1); 整數類型報錯
//使用迭代器遍歷list集合
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()) {
String s=iterator.next();
System.out.println(s+"length is:"+s.length());
}
}