美文网首页
List的特性和方法

List的特性和方法

作者: 御都 | 来源:发表于2019-05-18 09:03 被阅读0次

    一、特点
    List集合中存放的元素有存入先后顺序,可重复。相当于一个只存放对象元素的,容量可扩展的数组。
    二、同Collection比较新增的方法
    新增的方法都来源于脚标,能精确定位到已存在List集合中的某一个位置。

    • 1.1 添加
      void add(int index,Object obj)向指定位置添加集合元素
      *1. 2 获取
      Object get(int index) 返回指定位置的集合元素
    • 1.3 删除
      Object remove(int index)移除指定位置的元素,并将该元素返回
      *1. 4 修改
      Object set(int index,Object obj)替换集合中指定位置的元素,并将被
    • 替换的元素返回
    • 1.5列表迭代器
      ListIterator listIterator() List集合特有的迭代器,遍历List的所以元素
      ListIterator listIterator(int index) 遍历从index到最后的元素
      2 说明
      2.1 脚标的范围,add()添加元素时是[0,list.size()],get()获取时范围为[0,list.size()-1],超过范围运行时报下标越界的错(IndexOutOfBoundsException)
      2.2 get()和size()联用可以实现List集合的迭代
    //创建集合对象
            List list = new ArrayList();
            //添加对象元素到集合中
            list.add("hello");
            list.add("java");
            list.add("world");
            for(int i = 0;i<list.size();i++){
                String s = (String)list.get(i);
                System.out.println(s);
            }
    

    运行结果

    hello
    java
    world
    

    3 ListIterator列表迭代器,一般用来做修改集合元素的遍历
    3.1 列表迭代器继承了Iterator接口,所以也拥有hasNext() next()方法,不涉及修改集合元素的遍历不使用列表迭代器,使用Iterator()就可以
    3.2 ListIterator接口中新增hasPrevious() ,previous()这2个方法,要使用这2个方法需要先正向遍历,使用场景不多
    previous()---返回当前元素,指针移动到前一个元素
    hasPrevious()----判断是否还有前一个元素,即指针指向的位置是否还有元素,和hasNext()相反的含义

    public static void main(String[] args) {
            List list = new ArrayList();
            list.add("hello");
            list.add("java");
            list.add("world");
            ListIterator lit = list.listIterator();
            while(lit.hasNext()){
                String s = (String)lit.next();
                System.out.println(s);
            }
            System.out.println("--------------");
            while(lit.hasPrevious()){
                String s = (String)lit.previous();
                System.out.println(s);
            }
        }
    

    运行结果

    hello
    java
    world
    --------------
    world
    java
    hello
    

    3.3 ListIterator中有 void add(Object o),可以新增集合元素,新增的位置为next()返回值的后面,如果是用普通for循环添加的位置是集合的末尾

    public static void main(String[] args) {
            List list = new ArrayList();
            list.add("hello");
            list.add("java");
            list.add("world");
            for(int i=0;i<list.size();i++){
                String s = (String)list.get(i);
                if(s.equals("java")){
                    list.add("javaSE");
                }
            }
            ListIterator lit = list.listIterator();
            while(lit.hasNext()){
                String s = (String)lit.next();
                if(s.equals("java")){
                    lit.add("Python");
                }
            }
            
            System.out.println(list);
        }
    

    运行结果

    [hello, java, Python, world, javaSE]
    

    相关文章

      网友评论

          本文标题:List的特性和方法

          本文链接:https://www.haomeiwen.com/subject/kgrzaqtx.html