javaList容器中容易忽略的知识点

在集合类框架中,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 }
原文地址:https://www.cnblogs.com/OliverZhang/p/6018996.html