Java——ArrayList集合

一、ArrayList常用方法:

1、ArrayList:数组结构;线程不同步,查询速度快,增删速度慢。1.2jdk

1)创建:ArrayList al=new ArrayList()

(2)添加:add(Object obj)//al.add("java")

  注释:(1)add接收的参数为Object对象,为了便于接收任何类型的对象;(2)集合中存储的对象都是引用(地址)

(3)查询集合长度:size()//al.size()

4)删除:remove(obj[,index])//al.remove("java");al.remove("0");删除对象返回boolean,删除索引返回删除的对象;

(5)清空:clear();无返回值;

(6)判断存在:contains(Object obj)//al.contains("java")true

7)判断是否为空:isEmpty()//长度为0是返回true

8)取交集:retainAll(Collection)//al1.retainAll(al2);在al1集合中只保留和al2中相同的元素,al2不变;

9)去交集:removeAll(Collection)//retainAll相反,去掉所有交集元素;

 二、ArrayList去重:

   1、实体类:

 

public class Person {
    private String name;
    private int age;
    Person(String name,int age){
        this.name=name;
        this.age=age;
    }
    public String getName(){
        return name;
    }
    public int getAge(){
        return age;
    }
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof Person)) return false;
        Person p=(Person)obj;
        return this.name.equals(p.name) && this.age==p.age;
    }
}

  2、去重工具类:

public class MyUtil {
    public static ArrayList removeRepeat(ArrayList al){
        //创建临时ArrayList实例;
        ArrayList temp=new ArrayList();
        for (Iterator it = al.iterator(); it.hasNext();){
            //ArrayList中contain中会调用indexOf方法,内部使用equals方法判断,在person中重写equals;
            Object obj=it.next();
            if (!temp.contains(obj)){
                temp.add(obj);
            }
        }
        return temp;
    }
}

  3、测试:

public class Test {
    public static void main(String[] args) {
        ArrayList al = new ArrayList();
        //Person对象传入时,被提升为Object对象;
        al.add(new Person("zs0", 10));
        al.add(new Person("zs1", 10));
        al.add(new Person("zs1", 11));
        al.add(new Person("zs1", 11));
        ArrayList arrayList = MyUtil.removeRepeat(al);
        for (Iterator<Person> iterator = arrayList.iterator(); iterator.hasNext(); ) {
            Person person = iterator.next();
            System.out.println(person);
        }
    }
}

 

posted @ 2019-07-24 10:25  开拖拉机的拉风少年  阅读(182)  评论(0编辑  收藏  举报