/*
* 1.List是collection的子接口
*List:有序,可重复的集合,list接口是以数组为底层实现,是有序的
List 代表一个元素有序、且可重复的集合,集合中的每个元素都有其对应的顺序索引
List 允许使用重复元素,可以通过索引来访问指定位置的集合元素。
List 默认按元素的添加顺序设置元素的索引。
*/
public class Demo1 {
public static void main(String[] args) {
//数组的格式
int[] ii = new int[10];
ii[0]=1;
//创建一个连续可变长度的数组
List list=new ArrayList();
//添加元素
list.add(1);//Integer类型,自动装箱
list.add("abc");
list.add(new Demo1());
//通过指定位置获取元素
Object o=list.get(1);
System.out.println(o);
//获取的是一个实现类时,需要强制转换类型,很繁琐,要自己记录需要转换成什么数据类型
Object demo1 = list.get(2);
Demo1 demo=(Demo1)demo1;
System.out.println(demo);
//泛型,解决了上面的麻烦,指定类型Integer,String,Person
//注意:为了规范,左边,右边都要在<>里写上数据格式,比如Integer
//这里用了(多态)父类的引用指向子类的实例,修改成LinkedList时只需要改new之后的ArrayList即可。
List<Integer> intList=new ArrayList<Integer>();//int可变长度的数组
//List<Integer> intList=new LinkedList<Integer>();
intList.add(123);
intList.add(456);
//intList.add("abc");这时添加一个字符串会报错,因为"abc"不属于Integer类型
//intList.add(new Demo1());也会报错
//在list最前面,放置一个元素。
intList.add(0,123);//Arraylist中的数据可重复
//获取456的位置信息
int index=intList.indexOf(456);
System.out.println("456的位置是:"+index);//下标从0开始,因为在最前面插入了一个元素,所以位置是2
LinkedList<Integer> List1=new LinkedList<Integer>();
//调用方法是引用类型(对象名前的类)的方法,不是具体实现类(new的类)的方法
List1.addFirst(123);
List1.addLast(456);
System.out.println(List1);
}
}
运行截图