• 47. List中特有的方法


    集合的体系:
    --------------| Collection  单列集合的根接口
    ----------| List 如果实现了List接口的集合类,该类具备的特点是:有序,可重复
    ----------| Set  如果实现了Set几口的集合类,该类具备的特点:无序,不可重复

    list的特有方法:
        
        添加
           add(int index, E element)    把元素添加到指定索引的位置
           addAll(int index, Collection<? extends E> c)   根据索引把一个集合中的所有元素添加到另一个集合中
            
        删除
           remove(int index)      根据索引删除集合中的指定元素
        
        查看
           get(int index)        获取集合中指定索引处的元素
           subList(int fromIndex, int toIndex)  指定开始和结束位置,获取集合中的一些元素(包头不包尾)
           indexOf(Object o)     获取集合中指定元素第一次出现的位置(索引值)
           lastIndexOf(Object o)  获取集合中指定元素最后一次出现的位置(索引值)
                
        修改     
           set(int index, E element)  替换指定元素中的元素(element:修改后的值)
        
        迭代器
           listIterator()    返回列表中元素的列表迭代器
           listIterator(int index) 返回列表中指定元素的列表迭代器(index:开始位置)
                     
        总结:我们发现List接口中特有的方法都存在索引值,所以我们如果要

    listIterator特有的方法:
       
        hasPrevious() 判断是否有上一个元素
        previous()   指针先向下移动一位,再取出当前指针指向的元素
        next()     先取出当前指针指向的元素,指针再向下移动一位
        add()      把元素添加到当前的指针指向的位置
        set()      用指定元素替换 next 或 previous 返回的最后一个元素     

    注意:当我们开始迭代的时候,指针默认指定的是第一个元素

    下面我们来一段代码:

    public static void main(String[] args) {
            List list = new ArrayList();
            list.add("张三");
            list.add("李四");
            list.add("王五");
            
            ListIterator listit = list.listIterator();
            while(listit.hasNext()) {
                System.out.print(listit.next()+",");
            }
            System.out.println("");
            while(listit.hasPrevious()) {
                System.out.print(listit.previous()+",");
            }    
        }

    这时我们是不是感到很疑惑:为什么第二个循环输出王五呢?按照上面的说法,第二个循环只能取出李四和张三吗?

    首先我们来看看next的定义:

      next()     先取出当前指针指向的元素,指针再向下移动一位

    我们可以发现:当next去除最后一个元素的时候指针往下移动了一位,然后才判断没有元素了。

    按照上面的例子,这个时候的指针指向的是3(索引)

    我们再看previous方法的定义:

      previous()   指针先向下移动一位,再取出当前指针指向的元素

    我们可以发现,如果这个时候指针指向的是3,那么指针再向上移动一位,这个时候的指针指向的是2,所以输出了王五

  • 相关阅读:
    成绩单问题
    详细介绍Linux shell脚本基础学习(一)
    千万级并发连接的秘密
    前段面试题
    cat 命令
    面试的一个网页设计师
    准备准备
    ls显示文件
    [HDU 1010 ]Tempter of the Bone
    Linux下的绘图(流程图、UML、mindmap)工具
  • 原文地址:https://www.cnblogs.com/zjdbk/p/8985193.html
Copyright © 2020-2023  润新知