List的特性和方法

2019-05-18  本文已影响0人  御都

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

猜你喜欢

热点阅读