JAVA常用API:List接口

List接口继承自Collection接口,Collection接口下分为列表List和集Set,List与Set相比,特点是“有序 有索引 元素可重复”。

List接口的实现类有 ArrayList  LinkedList

List接口除了继承Collection的方法外,其自身还有特有的方法,带索引的方法

1. add(int index, E);

将元素插入到指定索引上,注意越界异常

List<String> li = new ArrayList<String>();

li.add("abc1");

li.add("abc2");

li.add(0,"abc3");

2. remove(int index);

移除指定索引上的元素,返回被移除的元素

List<Integer> li = new ArrayList<Integer>();

li.add(1);

li.add(2);

li.remove(0);

3.set(int index,E);

修改指定索引上的元素,返回修改之前的元素

List<Integer> li = new ArrayList<Integer>();

li.add(1);

li.add(2);

li.set(0,5);

二、关于越界异常,

1. StringIndexOutOfBoundsException 字符串越界异常

2. ArrayIndexOutOfBoundsException 数组索引越界异常

3. IndexOutOfBoundsException 集合索引越界异常

三、集合的三种遍历方式

List<String> li = new ArrayList<String>();

li.add("a");

li.add("b");

1. 带索引的for循环

for(int i = 0; i<li.size(); i++){

  System.out.println(li.get(i));

}

2. 增强for

for(String str:li){

  System.out.println(str);

}

3. 迭代器

Iterator it = li.iterator();

while(it.hasNext()){

  System.out.println(it.next());

}

四、 迭代器并发修改异常ConcurrentModificationException ,一般是在迭代的同时,修改了集合的长度

List<String> li = new ArrayList<String>();

li.add("abc1");

li.add("abc2");

li.add("abc3");

Iterator it = li.iterator();

while(it.hasNext()){

  if(it.next().equals("abc1")){

    li.set(0,"aaa"); //未修改长度,可执行

    li.add("ABC");//修改了集合的长度,报并发修改异常

  }

}

posted on 2018-06-17 21:15  adamal  阅读(1437)  评论(0)    收藏  举报