欢迎光临
我们一直在努力

Java核心知识——集合详解

本文详细讲解Java集合框架核心知识点,涵盖Collection、List、Set、Map、迭代器、泛型、工具类。

一、集合概述

集合是Java存储对象数据的容器,用于存储引用类型(包装类/对象),长度可动态扩容,比数组更灵活。

二、集合框架体系结构

1. Collection

  • List:有序、可重复、有索引
    • ArrayList
    • LinkedList
    • Vector
  • Set:无序、不重复、无索引
    • HashSet
    • LinkedHashSet
    • TreeSet

2. Map

  • HashMap
  • LinkedHashMap
  • TreeMap
  • Hashtable
  • Properties

三、Collection 通用方法

所有单列集合都可使用:

public class CollectionDemo {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();

coll.add("Java"); // 添加
coll.remove("Java"); // 删除
coll.contains("Java"); // 判断包含
coll.isEmpty(); // 判断空
coll.size(); // 长度
coll.clear(); // 清空
}
}


四、List 集合(有序、可重复、有索引)

1. ArrayList

底层数组,查询快、增删慢

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.get(0); // 获取
list.set(0,"C"); // 修改
list.remove(0); // 删除

2. LinkedList

底层链表,查询慢、增删快

LinkedList<String> link = new LinkedList<>();
link.addFirst("first");
link.addLast("last");
link.getFirst();
link.getLast();

3. List 遍历方式

  • 普通for
  • 增强for
  • 迭代器
  • // 迭代器遍历
    Iterator<String> it = list.iterator();
    while(it.hasNext()){
    String s = it.next();
    }

    // 增强for
    for(String s : list){}


    五、Set 集合(无序、不重复、无索引)

    1. HashSet

    底层哈希表,无序、不重复

    Set<String> set = new HashSet<>();
    set.add("Java");
    set.add("Python");

    2. LinkedHashSet

    有序、不重复

    3. TreeSet

    可排序、不重复

    Set 核心:保证不重复原理

    依赖对象:

    • hashCode()
    • equals()

    自定义对象必须重写这两个方法才能去重。


    六、Map 集合(键值对 key-value)

    Key唯一,Value可重复

    1. HashMap

    最常用,哈希表,无序

    Map<String, String> map = new HashMap<>();
    map.put("name","小码哥"); // 添加
    map.get("name"); // 获取
    map.remove("name"); // 删除
    map.containsKey("name"); // 判断key
    map.keySet(); // 获取所有key
    map.entrySet(); // 获取所有键值对

    2. LinkedHashMap

    有序

    3. TreeMap

    可排序

    4. Map 遍历

    方式1:键找值

    Set<String> keys = map.keySet();
    for(String key : keys){
    String value = map.get(key);
    }

    方式2:键值对对象

    Set<Map.Entry<String,String>> entrys = map.entrySet();
    for(Map.Entry<String,String> entry : entrys){
    String key = entry.getKey();
    String value = entry.getValue();
    }


    七、迭代器 Iterator

    用于遍历集合

    Iterator<String> it = list.iterator();
    while(it.hasNext()){
    String s = it.next();
    }


    八、泛型集合

    规定集合存储的数据类型,避免强转

    List<String> list = new ArrayList<>();
    Map<String,Integer> map = new HashMap<>();


    九、Collections 工具类

    Collections.sort(list); // 排序
    Collections.shuffle(list); // 打乱
    Collections.max(list); // 最大值
    Collections.min(list); // 最小值
    Collections.reverse(list); // 反转


    十、集合高频面试点

  • ArrayList vs LinkedList
    • 数组/链表
    • 查询/增删性能
  • HashMap vs Hashtable
    • 线程不安全/安全
    • 允许null/不允许null
  • List 可重复,Set 不可重复
  • Map 存储键值对

  • 我是双栈小码哥,点赞+收藏+关注,希望本文能对您的学习和工作有所帮助。

    赞(0)
    未经允许不得转载:171主机测评 » Java核心知识——集合详解
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址