在集合类框架中,List是使用比较多的一种
List
|---Arraylist 内部维护的是一个数组,查找快增删慢
|---LinkedList 底层是链表,增删快查询慢。
|---Vctor线程安全的现在已经不用。
我们知道任何集合都可以返回迭代器,这里的list也是的,但是list可以返回list庄永迭代器,ListIterator。这都不是要说的重点,要是的重点在下面。
1、假如说我们现在有一个list,然后我们获取list的Iterator了。如果没有使用it.next(),就直接使用remove方法的话,那么就会报错
2、对于 Iterator 的子接口ListIterator 在迭代list 集合时,还可以对元素进行添加add(obj)),修改set(obj)的操作。
要说的内容看下面一段代码:
1 public void test() throws Exception { 2 3 ArrayList list = new ArrayList(); 4 // 增加:add() 将指定对象存储到容器中 5 list.add("计算机网络"); 6 list.add("现代操作系统"); 7 list.add("java编程思想"); 8 list.add("java核心技术"); 9 list.add("java语言程序设计"); 10 System.out.println(list); 11 12 ListIterator lit = list.listIterator(); 13 lit.next(); // 计算机网络 14 lit.next(); // 现代操作系统 15 System.out.println(lit.next()); // java编程思想 16 //用指定元素替换 next 或 previous 返回的最后一个元素 17 lit.set("平凡的世界");// 将java编程思想替换为平凡的世界,如果这里使用的是lit.add的话,将会在"java编程思想"后面添加一个“平凡的世界” 18 System.out.println(list); 19 }
输出的内容将会是:
[计算机网络, 现代操作系统, java编程思想, java核心技术, java语言程序设计]
java编程思想
[计算机网络, 现代操作系统, 平凡的世界, java核心技术, java语言程序设计]
3、使用ListIterator实现倒序输出
1 import java.util.ArrayList; 2 import java.util.ListIterator; 3 4 public class Demo2 { 5 public static void main(String[] args) { 6 ArrayList list = new ArrayList(); 7 // 增加:add() 将指定对象存储到容器中 8 list.add("计算机网络"); 9 list.add("现代操作系统"); 10 list.add("java编程思想"); 11 list.add("java核心技术"); 12 list.add("java语言程序设计"); 13 System.out.println(list); 14 // 获取List专属的迭代器 15 ListIterator lit = list.listIterator(); 16 while (lit.hasNext()) { 17 String next = (String) lit.next(); 18 System.out.println(next); 19 } 20 System.out.println("***************"); 21 while (lit.hasPrevious()) { 22 String next = (String) lit.previous(); 23 System.out.println(next); 24 } 25 26 } 27 }
时间: 2024-10-05 23:24:19