List
List 也是个接口 很多方法和Collection是重复的
### 注意remove()
remove(具体对象)
remove(index索引) remove(11) 11不会自动装箱 就是删的 11索引位置的对象
import java.util.ArrayList; import java.util.List; @SuppressWarnings({ "rawtypes", "unchecked" }) public class demon1_list { /* * A:List集合的特有功能概述 * void add(int index,E element) * E remove(int index) * E get(int index) * E set(int index,E element) */ public static void main(String[] args) { //demon1(); List list = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); //Object obj = list.remove("b"); // 返回的是true Object obj = list.remove(1); System.out.println(obj); System.out.println(list); } public static void demon1() { List list = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); list.add(1,"e"); //list.add(10, "z"); // 索引越界异常 System.out.println(list); } }
get(index) 这是List 集合特有的 Set集合就没有
### set(index,新值) 改变值
List集合特有的遍历方式
public static void main(String[] args) { List list = new ArrayList(); list.add(new Student("张三",23)); list.add(new Student("李四",24)); list.add(new Student("王五",25)); list.add(new Student("赵柳",26)); for (int i = 0; i < list.size(); i++) { Student s1 = (Student)list.get(i); System.out.println(s1.getName()); } }
### 集合在迭代时,修改元素 会报 并发修改异常ConcurrentModificationException
解决方法: 用迭代器去修改元素
ListIterator l = list.listIterator()
l.add() // 可以修改了 不会报错了
import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; import com.heima.bean.Student; public class demon3_list { /* * 需求:我有一个集合,请问,我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现。 */ public static void main(String[] args) { List list = new ArrayList(); list.add("a"); list.add("b"); list.add("world"); list.add("c"); list.add("d"); list.add("e"); /*Iterator iterator = list.iterator();//获取迭代器 while (iterator.hasNext()) { String s1 = (String)iterator.next(); if ("world".equals(s1)) { list.add("javaee"); // ConcurrentModificationException }*/ ListIterator lit = list.listIterator(); while (lit.hasNext()) { String s1 = (String) lit.next(); if ("world".equals(s1)) { //lit.add("javaee"); lit.remove(); } } /* ConcurrentModificationException * 并发修改异常 * 当方法检测到对 象的并发修改,但不允许这种修改时,抛出此异常。 */ System.out.println(list); } }
竹杖芒鞋轻胜马,一蓑烟雨任平生。
回首向来萧瑟处,也无风雨也无晴。