城管希课堂之集合和迭代器
Collection方法
addAll方法:把指定集合中的所有元素都添加到当前集合中。
removeAll:把指定集合与当前集合的交集删除。
retainAll:判断调用者是否发生变化
迭代器遍历集合
Collection c = new ArrayList();c.add( new Student("刘","20"));c.add( new Student("彭","20"));c.add( new Student("康","20"));Object[] array = c.toArray();for (int i = 0; i < array.length; i++) {Student student = (Student)array[i];System.out.println(student.getName());}Iterator iterator = c.iterator();while (iterator.hasNext()) {//向下转型Student student = (Student)iterator.next();System.out.println(student.getName()); }
实际上集合内部有一个指针 调用next 实际上把指针向下移动一位 调用几次挪动几次
* 什么时候使用ArrayList 和 LinkedList ?* ArrayList 特点* 查询块 增删慢* 数组实现 数组是一块连续的内存空间* 按角标查询* 增删时 把要删除或增加的元素后面的所有元素* 向前移动或者向后移动 * * LinkedList 特点* 查询慢 增删快* 链表实现* 查询:* 先看这个元素 离那一端近 就从那一端开始* 一个一个向前或向后 寻找 直到找到为止* 增加:* 链表中的元素 要保证 能找到 自己的上一个 和下一个元素* 需要保存 上一个和下一个元素的地址* 只要保存了地址 就能找到元素 相当于 插入到了 链中* 后面的元素 不会发生改变* * 两个集合 如何选择? 根据实际需求来判断 ---扯你的项目* 增删多 链表* 查询多 数组* 什么时候使用ArrayList 和 LinkedList ?* ArrayList 特点* 查询块 增删慢* 数组实现 数组是一块连续的内存空间* 按角标查询* 增删时 把要删除或增加的元素后面的所有元素* 向前移动或者向后移动 * * LinkedList 特点* 查询慢 增删快* 链表实现* 查询:* 先看这个元素 离那一端近 就从那一端开始* 一个一个向前或向后 寻找 直到找到为止* 增加:* 链表中的元素 要保证 能找到 自己的上一个 和下一个元素* 需要保存 上一个和下一个元素的地址* 只要保存了地址 就能找到元素 相当于 插入到了 链中* 后面的元素 不会发生改变* * 两个集合 如何选择? 根据实际需求来判断 ---扯你的项目* 增删多 链表* 查询多 数组
List list = new ArrayList();list.add("a");list.add("b");list.add("c");list.add("d");//使用list接口中 特有的迭代器//listIterator中的添加方法//获取迭代器ListIterator listIterator = list.listIterator();while (listIterator.hasNext()) {//获取元素 并 强转类型String string = (String)listIterator.next();if (string.equals("b")) {//使用迭代器中的 添加方法listIterator.add("OH-YES");} }System.out.println(list);LIst特有方法 add set get remove
List list = new ArrayList();list.add("a");list.add("b");list.add("c");list.add("d");// 添加 (不要超出集合的元素个数 Size)//list.add(0, "X");// 设置元素(替换该位置的元素)//list.set(3, "W");// 获取下标处的元素Object object = list.get(0);//System.out.println(object);//删除(返回的是 删除的元素)Object obj = list.remove(0);System.out.println(obj);//利用get方法 遍历for (int i = 0; i < list.size(); i++) {//打印元素System.out.println(list.get(i));}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
