泛型集合之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);
            
        }

    }

}
所以大家可以看到,使用泛型集合避免了很多麻烦,而且在便利是不用强转,简化了代码,更容易理解。泛型集合在便利是方法更多
 
原文地址:https://www.cnblogs.com/liuxingzhi/p/6859997.html