关于Collection的子接口List的常用方法:
1、List集合存储元素的特点:有序可重复。
有序:List集合中的元素有下标,从0开始,以1递增。
可重复:存储一个1,可以再存储一个1。
2、List接口继承自Collection接口,肯定有自己“特有”的方法:
以下只列出List接口特有的,常用的方法:
先实例化一个List集合:
// 创建List类型的任一集合对象,这里是测试List独有的方法,就不能写成:Collection c = new ArrayList();
List list = new ArrayList();
//List list = new LinkedList();
//List list = new Vector();
接口中的方法为抽象方法,public abstract省略不写。
(1)void add(int index, Object element);
在列表中指定的位置范围[0, size()]上插入指定的元素,当前元素和右边元素全部向右移动一位,效率较低。
// (1)void add(int index, Object element);
list.add(10);
list.add("hello");
//list.add(3, 100); // 异常:java.lang.IndexOutOfBoundsException
// 下标只能在[0, 当前size()]的位置插入元素,包括了size()下标
System.out.println(list.size()); // 2
list.add(1, 100); // "hello"这个元素向后移一位
System.out.println(list.size()); // 3
(2)Object get(int index);
返回此列表中指定位置的元素。
// (2)Object get(int index);
list.clear();
list.add(100);
list.add(new Object());
Object get1 = list.get(0);
Object get2 = list.get(1);
System.out.println(get1); // 100
System.out.println(get2); //java.lang.Object@10f87f48
// 因为List有下标,Set没有。List可以通过下标和get()来遍历集合
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i)); // 100 java.lang.Object@10f87f48
}
(3)int indexOf(Object o);
返回此列表中指定元素的第一次出现的索引下标,如果此列表不包含元素,返回-1。
(4)int lastIndexOf(Object o);
返回此列表中指定元素的最后一次出现的索引下标,如果此列表不包含元素,返回-1。
// (3)int indexOf(Object o); (4)int lastIndexOf(Object o);
list.clear();
list.add(10);
list.add("hello");
list.add(10);
System.out.println(list.indexOf(10)); // 0
System.out.println(list.lastIndexOf(10)); // 2
System.out.println(list.indexOf(30)); // -1
(5)Object remove(int index);
删除此列表中指定位置的元素,并返回删除的对象。
// (5)Object remove(int index);
list.clear();
list.add(10);
list.add("hello");
list.add(10);
Object remObj1 = list.remove(1);
System.out.println(remObj1); // hello
System.out.println(list.size()); // 2
(6)Object set(int index, Object element);
用指定元素替换此列表中指定位置的元素。
// (6)Object set(int index, Object element);
list.clear();
list.add(10);
list.add(20);
list.add("hello");
Object setObj = list.set(1, "world");
System.out.println(setObj); // 20