Skip to content

Collection 接口


⭐ 体系图

基本介绍

(1)Collection 的实现子类可以存放多个元素,每个元素都可以是 Object

(2)一些实现类可以存放重复元素,一些不可以

(3)List 接口的实现类存放元素是有序的

(4)Set 接口的实现类存放元素是无序的

常用方法

方法描述
int size()返回集合中的元素数量
boolean isEmpty()判断集合是否为空
void clear()移除集合中的所有元素
boolean add()向集合中添加元素,如果集合因此发生变化则返回 true
boolean addAll(Collection<? extends E> c)将指定集合中的所有元素添加到当前集合
boolean remove(Object o)从集合中移除指定元素,如果集合包含该元素则返回 true
boolean removeAll(Collection<?> c)移除当前集合中所有包含在指定集合中的元素
boolean contains(Object o)判断集合是否包含指定元素
boolean containsAll(Collection<?> c)判断集合是否包含指定集合中的所有元素

代码示例

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

@SuppressWarnings("all")
public class practise {
    public static void main(String[] args) {
        List list = new ArrayList();
        List list1 = new ArrayList();

        // size()
        int size = list.size();
        System.out.println("list size = " + size);

        // isempty()
        System.out.println("list is empty() ? " + list.isEmpty());

        // add() addAll()
        list.add("jack");
        list.add("computer");

        list1.add("hello");
        list1.add("java");

        list.addAll(list1);
        System.out.println("list = " + list);

        // remove()  removeAll()
        list.remove("jack");
        list.removeAll(list1);

        System.out.println("list = " + list);

        // contains() containsAll()
        System.out.println("list.contains(\"computer\") ? " + list.contains("computer"));
        System.out.println("list.containsAll(list1) ? " + list.containsAll(list1));

        // clear()
        list.clear();
        System.out.println("list = " + list);
    }
}

// 运行结果
list size = 0
list is empty() ? true
list = [jack, computer, hello, java]
list = [computer]
list.contains("computer") ? true
list.containsAll(list1) ? false
list = []

Iterator 迭代器遍历

基本介绍

(1) Iterator 对象称为迭代器,主要用于遍历 Collection 集合中的元素

(2) 所有实现了 Collection 接口的集合类都有一个 iterator()方法,用以返回一个实现了 Iterator 接口的对象,即可以返回一个迭代器

(3) Iterator 的原理:通过一个指针遍历

⚠️ 注意点

(1)Iterator 只适用于遍历单一元素集合

(2)Iterator 本身并不存放对象

使用方法

⭐ 快捷键:itit

(1)循环条件:首先需要判断是否空(必须调用 iterator.hasNext()方法),否则会抛 NoSuchElementException 异常

(2)移动指针:iterator.next()

如果需要再次遍历,需要重置指针,即再次返回集合的迭代器对象

java
Iterator iterator = list.iterator()

代码示例

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

@SuppressWarnings("all")
public class practise {
    public static void main(String[] args) {
        List list = new ArrayList();
        List list1 = new ArrayList();

        list.add("jack");
        list.add("computer");

        list1.add("hello");
        list1.add("java");

        list.addAll(list1);

        // 返回 list 的迭代器对象
        Iterator iterator = list.iterator();
        while(iterator.hasNext()){
            Object obj = iterator.next();
            System.out.println(obj);
        }
    }
}

// 输出结果
jack
computer
hello
java

增强 for 循环遍历

快捷键:I + 回车

基本结构

适用对象:集合 / 数组,把集合 / 数组中的元素逐个取出

java
for(元素类型 : 集合 / 数组){

}

代码示例

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

@SuppressWarnings("all")
public class practise {
    public static void main(String[] args) {
        List list = new ArrayList();
        List list1 = new ArrayList();

        list.add("jack");
        list.add("computer");

        list1.add("hello");
        list1.add("java");

        list.addAll(list1);

        for (Object obj : list) {
            System.out.println(obj);
        }

    }
}

// 输出结果
jack
computer
hello
java