泛型集合之ArrayList
泛型集合就是用<>形参和实参规定好的集合,就是在原来的基础上加了一对括号和限制了参数类型,便于在编译时不会报错,在运行时也不会报错。看一下下面的代码。
package jihe; import java.util.ArrayList; public class ArrayListTest { public static void main(String[] args) { // TODO Auto-generated method stub //实例化集合对象 ArrayList list=new ArrayList(); list.add("好好"); list.add("学习"); list.add("java程序"); list.add(123);//第四行 //便利集合 for (int i = 0; i < list.size(); i++) { String object = (String)list.get(i); System.out.println(object); } } } 好好 学习Exception in thread "main" java程序 java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String at jihe.ArrayListTest.main(ArrayListTest.java:15)
重上面的代码大家可以看到第四行添加了一个integer类型的数据,在编译时并未报错,而运行时报错了,java.lang.ClassCastException。但是如果我们使用泛型集合时编译就会报错
java.lang.ClassCastException:
package jihe; import java.util.ArrayList; public class ArrayListTest { public static void main(String[] args) { // TODO Auto-generated method stub //实例化集合对象 ArrayList<String> list=new ArrayList<String>(); list.add("好好"); list.add("学习"); list.add("java程序"); //list.add(123);//第四行提示编译出错 //便利集合 for (int i = 0; i < list.size(); i++) { //String object = (String)list.get(i);//第6行 String string = list.get(i);//第7行 System.out.println(string); } } }
所以大家可以看到,使用泛型集合避免了很多麻烦,而且在便利是不用强转,简化了代码,更容易理解。泛型集合在便利是方法更多