ArrayList
知识点
数组长度
ArrayList底层是维护了一个Object数组实现 的,使用无参构造函数时,Object数组默认的容量是10,当长度不够时,自动增长0.5倍。
ArrayList 非特有的方法
即List接口的方法,具体代码示例可参考上一篇博客。
需求: 编写一个函数清除集合中重复元素。
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;
}
}
版权声明:本文为Kate_sicheng原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。