zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Lock接口与等待唤醒机制
    线程同步(线程安全处理Synchronized)与死锁
    关于线程安全的例子(电影票出售)
    线程池
    多线程
    commons-IO工具包
    打印流
    关于web的安全问题
    防止手机页面软键盘调出时布局被挤压
    css3新特性归总笔记
  • 原文地址:https://www.cnblogs.com/OliverZhang/p/6018996.html
Copyright © 2011-2022 走看看