首页 > 代码库 > 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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。