泛型集合之ArrayList

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了泛型集合之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);
            
        }

    }

}
所以大家可以看到,使用泛型集合避免了很多麻烦,而且在便利是不用强转,简化了代码,更容易理解。泛型集合在便利是方法更多
 

 

以上是关于泛型集合之ArrayList的主要内容,如果未能解决你的问题,请参考以下文章

java 27 - 7 反射之 通过反射越过泛型检查

Java 之 泛型的其他知识

非泛型集合

泛型集合

非泛型集合

蓝鸥Unity开发基础二——课时22 ArrayList