List和ArrayList的区别
List是一个接口,而ArrayList是List接口的一个实现类。
ArrayList类是继承AbstractList抽象类和实现List接口的一个实现类。
List接口不能被构造,也就是我们说的不能创建实例对象,但是我们可以为List接口创建一个指向自己的对象引用,而ArrayList实现类的实例对象就在这充当了这个指向List接口的对象引用。
- List list; //正确 list=null;
- List list = new List(); // 错误
- List list = new ArrayList();//正确。这句创建了一个ArrayList的对象后把它上溯到了List。此时它是一个List对象了
- ArrayList list = new ArrayList();//正确。创建一对象则保留了ArrayList的所有属性
- ArrayList list = new Object();//错误
- ArrayList mlist = new List();//错误
最好用以下写法:
ArrayList list=new ArrayList();
ArrayList<Activity> activities = new ArrayList<>();
ArrayList<String> stringArrayList = new ArrayList<>();
ArrayList<Map<String, Object>> arrayList = new ArrayList<>();
ArrayList<Phone> phoneList = new ArrayList<>();