List集合,ArrayList集合

List集合存放的是有序可重复的对象,List每一个对象都有一个对应的角标,可以通过角标来对集合里的对象进行控制。
List还有一个特点,它下的一个方法listIterator,能够在迭代的时候对集合进行增,删,替换,顺序排序,逆序排序。

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class JiHeDemo{
    public static void main(String[] args) {
        List l=new ArrayList();
        l.add(1745);
        l.add(1725);
        l.add(1715);
        ListIterator li=l.listIterator();
        while(li.hasNext()){
            Object o=li.next();
            
            if(o.equals(1725)){
                li.remove();
            }
        }
        while(li.hasPrevious()){
            System.out.println(li.previous());
        }
    }
}

顺序排序之后,对集合进行修改之后,再次迭代集合只能逆序。
ArrayList底层维护的是一个可变数组,因此存放的对象可以自定义。
需求:去除集合中的重复元素

import java.util.ArrayList;
import java.util.Iterator;

public class JiHeDemo{
    public static void main(String[] args) {
        ArrayList al=new ArrayList();
        al.add("e");
        al.add("a");
        al.add("b");
        al.add("c");
        al.add("e");
        al.add("e");
        al.add("b");
        al.add("b");
        System.out.println("没有更改前的集合对象"+al);
        ArrayList newal=new ArrayList();
        for (Iterator iterator = al.iterator(); iterator.hasNext();) {
            Object object = (Object) iterator.next();
            if(!newal.contains(iterator.next())){
                newal.add(iterator.next());
            }
        }
        al.clear();
        al.addAll(newal);
        System.out.println("删去重复对象后的集合"+al);
    }
}

发现一个有意思的事情当定义一个迭代变量时打印出来的不存在a,c对象,不定义迭代变量,程序正常进行,打印正常结果。

你可能感兴趣的:(List集合,ArrayList集合)