欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ArrayList

程序员文章站 2022-03-21 17:05:14
...

ArrayList

知识点

ArrayList

数组长度

ArrayList底层是维护了一个Object数组实现 的,使用无参构造函数时,Object数组默认的容量是10,当长度不够时,自动增长0.5倍。

ArrayList 非特有的方法

即List接口的方法,具体代码示例可参考上一篇博客。
ArrayList

需求: 编写一个函数清除集合中重复元素。

package collection;

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

class Book {

    int id;

    String name;

    public Book(int id, String name) {
        this.id = id;
        this.name = name;
    }

    @Override
    public String toString() {
        return "【书号:" + this.id + "    书名:" + this.name + "】";

    }

    @Override
    public boolean equals(Object obj) {// 书号(id)相同,视为重复
        Book book = (Book) obj;
        return this.id == book.id;
    }

}

public class Demo3 {

    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add(new Book(3187, "《艺术人生》"));
        list.add(new Book(3398, "《美术精选》"));
        list.add(new Book(8513, "《宋词集》"));
        list.add(new Book(3187, "《艺术》"));

        ArrayList list1 = clearRepeat(list);
        System.out.println(list1);//[【书号:3187    书名:《艺术人生》】, 【书号:3398    书名:《美术精选》】, 【书号:8513    书名:《宋词集》】]


    }

    public static ArrayList clearRepeat(ArrayList list) {

        ArrayList list2 = new ArrayList();// 创建一个新的集合

        Iterator it = list.iterator();// 获取迭代器
        while (it.hasNext()) {
            Book book = (Book) it.next();// 从旧集合中获取的元素
            if (!list2.contains(book)) {// 如果新集合没有包含该书籍,那么就存储到新集合中
                list2.add(book);
            }

        }
        return list2;

    }
}
相关标签: ArrayList