ArrayList
程序员文章站
2022-03-21 17:05:14
...
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;
}
}
推荐阅读
-
ArrayList扩容机制(基于底层代码讲解)
-
java语法ArrayList、LinkedList、HashSet、HashMap、HashTable、Collection、Collections详解
-
Android编程实现使用Intent传输包含自定义类的ArrayList示例
-
API之Scanner,Random,ArrayList基础运用。重点是ArrayList
-
【转载】 C#中ArrayList集合类的使用
-
【转载】C#中ArrayList集合类使用Add方法添加元素
-
基准测试了 ArrayList 和 LinkedList ,发现我们一直用 ArrayList 也是没什么问题的
-
ArrayList实现原理(JDK1.8)
-
Java中的容器(集合)之ArrayList源码解析
-
Java ArrayList扩容问题实例详解