首页 > 代码库 > List

List

 1 /* 2  * 需求:List集合存储字符串并遍历。 3  */ 4 public class ListDemo { 5     public static void main(String[] args) { 6         // 创建集合对象 7         List list = new ArrayList(); 8  9         // 创建字符串并添加字符串10         list.add("hello");11         list.add("world");12         list.add("java");13 14         // 遍历集合15         Iterator it = list.iterator();16         while (it.hasNext()) {17             String s = (String) it.next();18             System.out.println(s);19         }20     }21 }

=======================================

 1 /* 2  * List集合的特点: 3  *         有序(存储和取出的元素一致),可重复的。 4  */ 5 public class ListDemo2 { 6     public static void main(String[] args) { 7         // 创建集合对象 8         List list = new ArrayList(); 9 10         // 存储元素11         list.add("hello");12         list.add("world");13         list.add("java");14         list.add("javaee");15         list.add("android");16         list.add("javaee");17         list.add("android");18 19         // 遍历集合20         Iterator it = list.iterator();21         while (it.hasNext()) {22             String s = (String) it.next();23             System.out.println(s);24         }25     }26 }

=======================================

 1 /* 2  * List集合的特有功能: 3  * A:添加功能 4  *         void add(int index,Object element):在指定位置添加元素 5  * B:获取功能 6  *         Object get(int index):获取指定位置的元素 7  * C:列表迭代器 8  *         ListIterator listIterator():List集合特有的迭代器 9  * D:删除功能10  *         Object remove(int index):根据索引删除元素,返回被删除的元素11  * E:修改功能12  *         Object set(int index,Object element):根据索引修改元素,返回被修饰的元素13  */14 public class ListDemo {15     public static void main(String[] args) {16         // 创建集合对象17         List list = new ArrayList();18 19         // 添加元素20         list.add("hello");21         list.add("world");22         list.add("java");23 24         // void add(int index,Object element):在指定位置添加元素25         // list.add(1, "android");//没有问题26         // IndexOutOfBoundsException27         // list.add(11, "javaee");//有问题28         // list.add(3, "javaee"); //没有问题29         // list.add(4, "javaee"); //有问题30 31         // Object get(int index):获取指定位置的元素32         // System.out.println("get:" + list.get(1));33         // IndexOutOfBoundsException34         // System.out.println("get:" + list.get(11));35 36         // Object remove(int index):根据索引删除元素,返回被删除的元素37         // System.out.println("remove:" + list.remove(1));38         // IndexOutOfBoundsException39         // System.out.println("remove:" + list.remove(11));40 41         // Object set(int index,Object element):根据索引修改元素,返回被修饰的元素42         System.out.println("set:" + list.set(1, "javaee"));43 44         System.out.println("list:" + list);45     }46 }

========================================

 1 /* 2  * List集合的特有遍历功能: 3  *         size()和get()方法结合使用 4  */ 5 public class ListDemo2 { 6     public static void main(String[] args) { 7         // 创建集合对象 8         List list = new ArrayList(); 9 10         // 添加元素11         list.add("hello");12         list.add("world");13         list.add("java");14 15         // Object get(int index):获取指定位置的元素16         // System.out.println(list.get(0));17         // System.out.println(list.get(1));18         // System.out.println(list.get(2));19         // IndexOutOfBoundsException20         // System.out.println(list.get(3));21 22         // 用循环改进23         // for (int x = 0; x < 3; x++) {24         // System.out.println(list.get(x));25         // }26         // 如果元素过多,数起来就比较麻烦,所以我们使用集合的一个长度功能:size()27         // 最终的遍历方式就是:size()和get()28         for (int x = 0; x < list.size(); x++) {29             // System.out.println(list.get(x));30 31             String s = (String) list.get(x);32             System.out.println(s);33         }34     }35 }

========================================

 1 /* 2  * 列表迭代器: 3  *         ListIterator listIterator():List集合特有的迭代器 4  *         该迭代器继承了Iterator迭代器,所以,就可以直接使用hasNext()和next()方法。 5  *  6  * 特有功能: 7  *         Object previous():获取上一个元素 8  *         boolean hasPrevious():判断是否有元素 9  * 10  *         注意:ListIterator可以实现逆向遍历,但是必须先正向遍历,才能逆向遍历,所以一般无意义,不使用。11  */12 public class ListIteratorDemo {13     public static void main(String[] args) {14         // 创建List集合对象15         List list = new ArrayList();16         list.add("hello");17         list.add("world");18         list.add("java");19 20         // ListIterator listIterator()21         ListIterator lit = list.listIterator(); // 子类对象22         // while (lit.hasNext()) {23         // String s = (String) lit.next();24         // System.out.println(s);25         // }26         // System.out.println("-----------------");27         28         // System.out.println(lit.previous());29         // System.out.println(lit.previous());30         // System.out.println(lit.previous());31         // NoSuchElementException32         // System.out.println(lit.previous());33 34         while (lit.hasPrevious()) {35             String s = (String) lit.previous();36             System.out.println(s);37         }38         System.out.println("-----------------");39 40         // 迭代器41         Iterator it = list.iterator();42         while (it.hasNext()) {43             String s = (String) it.next();44             System.out.println(s);45         }46         System.out.println("-----------------");47 48     }49 }

========================================

 1 /* 2  * 问题? 3  *         我有一个集合,如下,请问,我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现。 4  *  5  * ConcurrentModificationException:当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。  6  * 产生的原因: 7  *         迭代器是依赖于集合而存在的,在判断成功后,集合的中新添加了元素,而迭代器却不知道,所以就报错了,这个错叫并发修改异常。 8  *         其实这个问题描述的是:迭代器遍历元素的时候,通过集合是不能修改元素的。 9  * 如何解决呢?10  *         A:迭代器迭代元素,迭代器修改元素11  *             元素是跟在刚才迭代的元素后面的。12  *         B:集合遍历元素,集合修改元素(普通for)13  *             元素在最后添加的。14  */15 public class ListIteratorDemo2 {16     public static void main(String[] args) {17         // 创建List集合对象18         List list = new ArrayList();19         // 添加元素20         list.add("hello");21         list.add("world");22         list.add("java");23 24         // 迭代器遍历25         // Iterator it = list.iterator();26         // while (it.hasNext()) {27         // String s = (String) it.next();28         // if ("world".equals(s)) {29         // list.add("javaee");30         // }31         // }32 33         // 方式1:迭代器迭代元素,迭代器修改元素34         // 而Iterator迭代器却没有添加功能,所以我们使用其子接口ListIterator35         // ListIterator lit = list.listIterator();36         // while (lit.hasNext()) {37         // String s = (String) lit.next();38         // if ("world".equals(s)) {39         // lit.add("javaee");40         // }41         // }42 43         // 方式2:集合遍历元素,集合修改元素(普通for)44         for (int x = 0; x < list.size(); x++) {45             String s = (String) list.get(x);46             if ("world".equals(s)) {47                 list.add("javaee");48             }49         }50 51         System.out.println("list:" + list);52     }53 }

 

List