一、List和ArrayList
1.List代表一个元素有序、且可重复的集合,集合中的每个元素都有其对应的顺序索引。
2.List允许使用重复元素,可以通过索引来访问指定位置的集合元素。
3.List默认按元素的添加顺序设置元素的索引。
4.List集合里添加了一些根据索引来操作集合元素的方法。
Collection接口<—(继承)—List接口<—(实现)—ArrayList类
package day16; import java.util.ArrayList; import java.util.List; public class Test5 { public static void main(String[] args){ List<String> list = new ArrayList<String>(); list.add("b");//第一个,索引下标就是0,List默认按元素的添加顺序设置元素的索引。 list.add("d");//索引下标1 list.add("c");//索引下标2 list.add("a");//索引下标3 list.add("d");//索引下标4,.List允许使用重复元素 System.out.println(list); System.out.println(list.get(2));//List可以通过索引来访问指定位置的集合元素 list.add(1,"f");//在指的索引下标的位置插入数据 System.out.println(list); List<String> l = new ArrayList<String>(); l.add("123"); l.add("456"); list.addAll(2, l);//在指的索引下标的位置插入集合 System.out.println(list); System.out.println(list.indexOf("d"));//获取指定元素在集合中第一次出现的索引下标 System.out.println(list.lastIndexOf("d"));//获取指定元素在集合中最后一次出现的索引下标 list.remove(2);//根据指定的索引下标移除元素 System.out.println(list); list.set(1, "ff");//根据指定索引下标修改值 System.out.println(list); //根据下标的起始位置截取一段元素形成一个新的集合,截取的时候包含开始的索引,不包含结束时的索引 List<String> sublist = list.subList(2, 4);//取索引下标在2<=&&<4的元素 System.out.println(sublist); System.out.println(list.size());//集合的长度 } }
打印结果为:
二、ArrayList和Vector
ArraryList和Vector是List接口的两个典型实现,区别在于:
1.Vector是一个古老的集合,不常用,推荐使用ArrayList。
2.ArrayList是线程不安全的,而Vector是线程安全的,但即使为保证List集合线程安全,也不推荐使用Vector。