Bohr-L Bohr-L
首页
技术
常见面试题
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

刘博

I'm a slow walker, But I never walk backwards.
首页
技术
常见面试题
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 数据处理与存储类

  • Spring 生态类

  • 缓存问题类

  • 多线程类

  • JVM 类

  • MySQL 类

  • Java 8 + 特性类

    • 使用 Java 8 的优点是什么?
    • 集合与流有何不同?
    • 什么是 Lambda 表达式?
    • 解释 Predicate 和 Consumer 函数式接口
    • peek () 方法在 Java 8 中的作用?
    • 什么是函数式接口?
    • 接口中的静态方法有什么作用?
    • skip (long) 和 limit (long) 的区别?
    • 抽象类和接口的异同?
    • overload 与 override 的区别?
    • HashMap 在 Java 8 中的变化?
    • HashMap、LinkedHashMap、Hashtable、ConcurrentHashMap 的区别?
    • Lambda 参数列表与箭头运算符的作用?
    • sleep () 和 wait () 的区别?
    • throw 与 throws 的区别?
    • final、finally、finalize 的区别?
    • Collection 与 Collections 的区别
      • ArrayList、LinkedList、Vector 的区别?
    • 其他技术类

    • 常见面试题
    • Java 8 + 特性类
    刘博
    2025-12-29
    目录

    Collection 与 Collections 的区别

    Collection和Collections是 Java 中与集合操作相关的两个核心概念,前者是 “集合接口”,后者是 “集合工具类”,具体区别如下:

    # 1. 核心定义与作用

    • Collection:
      • 类型:Java 集合框架的顶层接口(java.util.Collection);
      • 作用:定义所有单列集合(如 List、Set)的通用方法规范(如add()、remove()、size()、iterator());
      • 子类 / 实现类:List(ArrayList、LinkedList)、Set(HashSet、TreeSet)等;
      • 特点:不能直接实例化,需通过实现类使用。
    • Collections:
      • 类型:Java 集合的工具类(java.util.Collections);
      • 作用:提供静态工具方法,用于操作 Collection 及其子类(如排序、查找、同步化、空集合创建);
      • 核心方法:sort()(排序)、binarySearch()(二分查找)、synchronizedList()(创建同步集合)、emptyList()(创建空集合);
      • 特点:类被final修饰(不能继承),所有方法都是静态方法(无需实例化,直接通过类名调用)。

    # 2. 示例

    java

    运行

    // 1. Collection:作为接口,使用其实现类ArrayList
    Collection<String> list = new ArrayList<>();
    list.add("apple");
    list.add("banana");
    System.out.println(list.size()); // 2
    
    // 2. Collections:作为工具类,调用静态方法
    // 排序
    Collections.sort((List<String>) list);
    System.out.println(list); // [apple, banana]
    
    // 二分查找
    int index = Collections.binarySearch((List<String>) list, "banana");
    System.out.println(index); // 1
    
    // 创建同步集合(线程安全)
    Collection<String> syncList = Collections.synchronizedCollection(list);
    
    // 创建空集合(不可修改)
    Collection<String> emptyList = Collections.emptyList();
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

    # 3. 关键区别

    对比维度 Collection Collections
    类型 接口 工具类(final 修饰,不能继承)
    实例化 不能直接实例化,需通过实现类(如 ArrayList) 不能实例化(所有方法静态),直接类名调用
    核心作用 定义单列集合的通用方法规范 提供集合操作的静态工具方法(排序、查找等)
    方法特性 抽象方法(需实现类实现) 静态方法(直接调用)
    关联类 子类:List、Set;实现类:ArrayList、HashSet 等 无子类,依赖 Collection 及其子类作为参数

    #


    上次更新: 12/30/2025
    final、finally、finalize 的区别?
    ArrayList、LinkedList、Vector 的区别?

    ← final、finally、finalize 的区别? ArrayList、LinkedList、Vector 的区别?→

    最近更新
    01
    CPU 使用率较高排查和解决
    12-29
    02
    JVM OOM 问题如何排查和解决
    12-29
    03
    接口防刷怎么实现?
    12-29
    更多文章>
    Theme by Vdoing | Copyright © 2025-2026 Bohr-L's note
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式