美文网首页
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