算法机试遍历集合 / 数组:99% 都用 增强 for 循环(for-each)!
能⽤增强 for,就⽤增强 for;需要下标才⽤普通 for;

Java Collection & Map 大厂机考核心方法+遍历总结

这是算法机考高频必背版本,只保留大厂面试/机考最常用的方法,剔除冷门API,清晰分块、带实战代码,直接背就能用。

一、整体分类

Collection(单列集合)
 ├─ List(有序、可重复、有索引)
 └─ Set(无序、不可重复、无索引)

Map(双列集合:key-value)

二、Collection 共有方法(List/Set 都能用)

Collection 是所有单列集合的父接口,以下方法 ArrayList、LinkedList、HashSet、TreeSet 全部通用。

1. 通用核心方法(机考必考)

方法作用
add(E e)添加元素
remove(Object o)删除指定元素
size()获取元素个数
isEmpty()判断是否为空
contains(Object o)判断是否包含某元素
clear()清空集合
toArray()转成数组

2. Collection 通用遍历方式(机考最常用增强for)

机考最常用 3 种:增强for、迭代器、forEach(Lambda)

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

public class CollectionTest {
    public static void main(String[] args) {
        Collection<String> coll = new ArrayList<>();
        coll.add("Java");
        coll.add("Python");
        coll.add("C++");

        // 1. 增强for循环(最常用,代码简洁)
        System.out.println("==== 增强for ====");
        for (String s : coll) {
            System.out.println(s);
        }

        // 2. 迭代器(遍历时可安全删除元素)
        System.out.println("==== 迭代器 ====");
        Iterator<String> it = coll.iterator();
        while (it.hasNext()) {
            String s = it.next();
            System.out.println(s);
        }

        // 3. forEach + Lambda(JDK8+,一行搞定)
        System.out.println("==== Lambda ====");
        coll.forEach(s -> System.out.println(s));
    }
}

三、List 集合(独有方法 + 遍历 + 特点)

实现类:ArrayList(机考首选,查询快)、LinkedList(极少用)

1. List 独有方法(基于索引!Set 没有)

方法作用
get(int index)根据索引获取元素(机考高频)
set(int index, E e)修改指定索引位置的元素
add(int index, E e)在指定索引插入元素
remove(int index)删除指定索引的元素
indexOf(Object o)获取元素第一次出现的索引

2. List 特有遍历方式:普通 for 循环

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

public class ListTest {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");

        // List 独有:普通for(通过索引遍历)
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i); // 核心:get(index)
            System.out.println(s);
        }
    }
}

3. List 特点

  • 有序:存进去和取出来顺序一致
  • 可重复:允许存储相同元素
  • 有索引:支持通过索引操作(get/set/add(int index))

四、Set 集合(独有方法 + 遍历 + 特点)

实现类:HashSet(机考首选,去重快)、TreeSet(排序)

1. Set 独有/核心特性

Set 没有任何独有的方法,全部继承自 Collection!
它的核心价值只有一个:自动去重。

机考用途:去重、判断元素是否存在、统计不同元素个数

2. Set 遍历方式

和 Collection 完全一样:增强for、迭代器、Lambda
(Set 无索引,不能用普通 for + get(index))

import java.util.HashSet;
import java.util.Set;

public class SetTest {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        set.add("苹果");
        set.add("苹果"); // 重复,自动去重
        set.add("香蕉");

        // 增强for遍历
        for (String s : set) {
            System.out.println(s); // 输出:苹果、香蕉
        }
    }
}

3. Set 特点

  • 无序(HashSet):存取顺序不一致
  • 不可重复:不允许存储相同元素(靠 hashCode() + equals() 判断)
  • 无索引:不能通过索引操作,不能用普通 for 遍历

五、List vs Set 核心区别(机考必背)

对比项ListSet
顺序有序无序(HashSet)
重复可重复不可重复
索引有索引无索引
核心方法get(index)无独有方法
遍历普通for/增强for/迭代器增强for/迭代器
机考场景有序存储、按索引取值去重、快速判重

六、Map 集合(机考高频:HashMap)

Map 是双列集合,存储 key-value,key 不可重复。

1. Map 核心方法

方法作用
put(K key, V value)添加/修改键值对
get(Object key)根据 key 获取 value
remove(Object key)根据 key 删除键值对
containsKey(Object key)判断是否包含某个 key(高频)
containsValue(Object v)判断是否包含某个 value
keySet()获取所有 key 的集合
entrySet()获取所有键值对对象
size()获取键值对个数
clear()清空

2. Map 2 种最常用遍历(机考必背)

① keySet 遍历(先拿 key,再拿 value)

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MapTest {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("张三", 20);
        map.put("李四", 22);

        // 方式1:keySet遍历(最常用)
        Set<String> keys = map.keySet();
        for (String key : keys) {
            Integer value = map.get(key);
            System.out.println(key + ":" + value);
        }
    }
}

② entrySet 遍历(直接拿键值对,效率更高)

// 方式2:entrySet遍历(大数据量推荐)
Set<Map.Entry<String, Integer>> entries = map.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
    String key = entry.getKey();
    Integer value = entry.getValue();
    System.out.println(key + ":" + value);
}

③ JDK8 Lambda(简洁写法)

map.forEach((k, v) -> System.out.println(k + ":" + v));

七、机考高频速记(背这个就够)

Collection

  • 通用:add、remove、size、contains、isEmpty
  • 遍历:增强for、迭代器、Lambda

List

  • 独有:get(index)、set、add(index)
  • 遍历:普通 for + 索引
  • 特点:有序、可重复、有索引

Set

  • 无独有方法
  • 作用:去重、判重
  • 特点:无序、不可重复、无索引

Map(HashMap)

  • 核心:put、get、containsKey、keySet、entrySet
  • 遍历:keySet、entrySet、Lambda
  • key 唯一、无序

总结

  1. Collection 单列集合,通用方法 + 遍历方式完全一致;
  2. List 靠索引吃饭,get(index) 是灵魂;
  3. Set 靠去重吃饭,无索引;
  4. Map 双列 key-value,containsKey 机考刷频率极高。
    这份内容覆盖 99% 大厂算法机考集合操作,直接背诵+默写即可。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐