Java 集合框架 (Collections Framework) 大纲

【Java集合框架】01 ——集合框架(Collections Framework) Java集合框架介绍 阅读详情

Java 集合框架 (Collections Framework) 是 Java 平台提供的一组接口、实现类和算法,用于存储、操作和管理对象集合。 它是 Java 编程中最核心、最常用的 API 之一。

一、 集合框架概述 (Overview)

  1. 定义:

    • 集合框架是一个统一的架构,用于表示和操作集合,允许它们独立于表示的细节进行操作。
    • 集合框架提供了一组通用的接口和类,用于存储不同类型的对象,并提供了对这些对象进行添加、删除、查找、遍历、排序等操作。
  2. 优点:

    • 减少编程工作量: 提供了现成的、高效的数据结构和算法,无需从头开始编写。
    • 提高程序性能: 集合框架中的实现类经过了优化,具有良好的性能。
    • 提高代码可读性和可维护性: 使用统一的接口和类,使代码更易于理解和维护。
    • 促进代码复用: 集合框架中的接口和类可以在不同的程序中重复使用。
    • 提供互操作性: 基于接口的集合框架允许不同类型的集合之间进行互操作。
  3. 组成部分:

    • 接口 (Interfaces): 定义了集合的通用行为,例如 Collection, List, Set, Map, Queue, Deque 等。
    • 实现类 (Implementations): 提供了接口的具体实现,例如 ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap 等。
    • 算法 (Algorithms): 提供了一些常用的算法,例如排序、查找、打乱顺序等,这些算法可以用于操作各种类型的集合。

二、 核心接口 (Core Interfaces)

Java 集合框架的核心接口主要分为两大类:

  1. Collection 接口:

    • Collection 接口是所有集合接口的根接口,它定义了集合的基本操作,例如添加元素、删除元素、判断是否包含元素、获取集合大小、遍历集合等。
    • Collection 接口的主要子接口:
      • List 接口: 有序集合,允许重复元素。
      • Set 接口: 无序集合,不允许重复元素。
      • Queue 接口: 队列,通常用于存储等待处理的元素(FIFO - 先进先出)。
      • Deque 接口: 双端队列,可以在两端添加和删除元素。
  2. Map 接口:

    • Map 接口用于存储键值对 (key-value pairs),每个键映射到一个值。
    • Map 接口中的键不能重复,值可以重复。
    • Map 接口的主要实现类:
      • HashMap
      • TreeMap
      • LinkedHashMap

接口层次结构 (简化版):

                          Collection<E>
                              /  |  \
                             /   |   \
                            /    |    \
                           /     |     \
                      List<E>  Set<E>  Queue<E>
                      /   \      |       /  \
                     /     \     |      /    \
           ArrayList  LinkedList HashSet Deque<E>
                                   |       |
                                TreeSet  ArrayDeque
                                         PriorityQueue


                                Map<K, V>
                               /    |    \
                              /     |     \
                          HashMap  TreeMap  LinkedHashMap

三、 常用接口和实现类详解

  1. Collection<E> 接口:

    • 常用方法:
      • add(E e): 添加元素。
      • addAll(Collection<? extends E> c): 添加另一个集合中的所有元素。
      • remove(Object o): 删除元素。
      • removeAll(Collection<?> c): 删除另一个集合中包含的所有元素。
      • retainAll(Collection<?> c): 仅保留此集合中包含在另一个集合中的元素(交集)。
      • clear(): 删除所有元素。
      • contains(Object o): 判断是否包含指定元素。
      • containsAll(Collection<?> c): 判断是否包含另一个集合中的所有元素。
      • isEmpty(): 判断集合是否为空。
      • size(): 返回集合中元素的数量。
      • iterator(): 返回一个用于遍历集合的迭代器。
      • toArray(): 将集合转换为数组。
      • toArray(T[] a): 将集合转换为指定类型的数组。
  2. List<E> 接口:

    • 特点: 有序集合,允许重复元素。 可以通过索引访问元素。

    • 常用方法 (除了 Collection 接口的方法外):

      • get(int index): 获取指定索引处的元素。
      • set(int index, E element): 替换指定索引处的元素。
      • add(int index, E element): 在指定索引处插入元素。
      • remove(int index): 删除指定索引处的元素。
      • indexOf(Object o): 返回指定元素第一次出现的索引。
      • lastIndexOf(Object o): 返回指定元素最后一次出现的索引。
      • subList(int fromIndex, int toIndex): 返回指定范围的子列表。
      • listIterator(): 返回一个列表迭代器,可以双向遍历列表,并修改列表。
    • 常用实现类:

      • ArrayList: 基于动态数组实现,查询快,插入/删除慢 (尤其是在中间插入/删除)。 非线程安全。
      • LinkedList: 基于双向链表实现,插入/删除快 (尤其是在中间插入/删除),查询慢。 非线程安全。
      • Vector: 类似于 ArrayList,但线程安全 (方法都使用 synchronized 修饰)。 性能较低。
      • Stack: 继承自Vector,表示栈。
  3. Set<E> 接口:

    • 特点: 无序集合,不允许重复元素。
    • 常用方法 (与 Collection 接口基本相同):
    • 常用实现类:
      • HashSet: 基于哈希表实现,无序,查找、添加、删除速度快。 非线程安全。
      • LinkedHashSet: 基于哈希表和链表实现,按照插入顺序排序。 非线程安全。
      • TreeSet: 基于红黑树实现,有序 (可以按照自然顺序或自定义比较器排序)。 非线程安全。
  4. Queue<E> 接口:

    • 特点: 队列,通常用于存储等待处理的元素,遵循 FIFO (先进先出) 原则。

    • 常用方法:

      • add(E e) / offer(E e): 添加元素到队尾 (前者在队列满时抛出异常,后者返回 false)。
      • remove() / poll(): 移除并返回队头元素 (前者在队列为空时抛出异常,后者返回 null)。
      • element() / peek(): 返回队头元素,但不移除 (前者在队列为空时抛出异常,后者返回 null)。
    • 常用实现类:

      • LinkedList: 也实现了 Queue 接口,可以用作队列。
      • PriorityQueue: 优先级队列,元素按照优先级排序。
      • ArrayBlockingQueue: 基于数组的有界阻塞队列。
      • LinkedBlockingQueue: 基于链表的可选有界阻塞队列。
      • PriorityBlockingQueue: 无界阻塞优先级队列。
      • DelayQueue: 延迟队列,元素只有在延迟时间到期后才能被取出。
      • SynchronousQueue: 同步队列,每个插入操作必须等待另一个线程的移除操作,反之亦然。
  5. Deque<E> 接口:

    • 特点: 双端队列 (Double Ended Queue),可以在两端添加和删除元素。

    • 常用方法:

      • addFirst(E e), offerFirst(E e)
      • addLast(E e), offerLast(E e)
      • removeFirst(), pollFirst()
      • removeLast(), pollLast()
      • getFirst(), peekFirst()
      • getLast(), peekLast()
    • 常用实现类:

      • LinkedList: 也实现了Deque接口。
      • ArrayDeque: 基于数组实现的双端队列。
  6. Map<K, V> 接口:

    • 特点: 存储键值对 (key-value pairs),键不能重复,值可以重复。

    • 常用方法:

      • put(K key, V value): 添加键值对。
      • get(Object key): 根据键获取值。
      • remove(Object key): 根据键删除键值对。
      • containsKey(Object key): 判断是否包含指定的键。
      • containsValue(Object value): 判断是否包含指定的值。
      • isEmpty(): 判断 Map 是否为空。
      • size(): 返回 Map 中键值对的数量。
      • keySet(): 返回所有键的 Set 集合。
      • values(): 返回所有值的 Collection 集合。
      • entrySet(): 返回所有键值对的 Set 集合 (每个元素是一个 Map.Entry 对象)。
    • 常用实现类:

      • HashMap: 基于哈希表实现,无序,查找、添加、删除速度快。 非线程安全。 允许 null 键和 null 值。
      • TreeMap: 基于红黑树实现,有序 (可以按照自然顺序或自定义比较器排序)。 非线程安全。
      • LinkedHashMap: 基于哈希表和链表实现,按照插入顺序或访问顺序排序。 非线程安全。
      • Hashtable: 类似于 HashMap,但线程安全 (方法都使用 synchronized 修饰)。 性能较低。 不允许 null 键和 null 值。
      • ConcurrentHashMap: 线程安全的 HashMap,使用分段锁 (Segment Locking) 或 CAS 操作实现高效的并发访问。

四、常用算法 (Collections Class)

java.util.Collections 类提供了一组静态方法,用于操作集合:

  • 排序: sort(List<T> list), sort(List<T> list, Comparator<? super T> c)
  • 查找: binarySearch(List<? extends Comparable<? super T>> list, T key), binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
  • 最大/最小值: max(Collection<? extends T> coll), min(Collection<? extends T> coll), max(Collection<? extends T> coll, Comparator<? super T> comp), min(Collection<? extends T> coll, Comparator<? super T> comp)
  • 反转: reverse(List<?> list)
  • 打乱顺序: shuffle(List<?> list)
  • 填充: fill(List<? super T> list, T obj)
  • 复制: copy(List<? super T> dest, List<? extends T> src)
  • 同步: synchronizedCollection(Collection<T> c), synchronizedList(List<T> list), synchronizedSet(Set<T> s), synchronizedMap(Map<K,V> m) (用于创建线程安全的集合)
  • 不可修改: unmodifiableCollection(Collection<? extends T> c), unmodifiableList(List<? extends T> list), unmodifiableSet(Set<? extends T> s), unmodifiableMap(Map<? extends K,? extends V> m) (用于创建不可修改的集合)

五、迭代器 (Iterator)

  • Iterator<E> 接口: 用于遍历集合中的元素。

    • hasNext(): 判断是否还有下一个元素。
    • next(): 返回下一个元素。
    • remove(): 删除迭代器最后一次返回的元素 (可选操作,并非所有迭代器都支持)。
  • ListIterator<E> 接口: List 接口特有的迭代器,支持双向遍历,并可以修改列表。

    • hasPrevious(): 判断是否还有上一个元素。
    • previous(): 返回上一个元素。
    • nextIndex(): 返回下一个元素的索引。
    • previousIndex(): 返回上一个元素的索引。
    • set(E e): 替换迭代器最后一次返回的元素。
    • add(E e): 在迭代器当前位置插入一个元素。
  • 增强 for 循环 (for-each 循环): 简化了集合的遍历. 本质上是使用了 Iterator.

    List<String> list = Arrays.asList("a", "b", "c");
    for (String s : list) {
        System.out.println(s);
    }
    

六、泛型 (Generics)

  • 集合框架广泛使用了泛型,可以指定集合中存储的元素类型,提高类型安全性和代码可读性。
  • 例如:List<String> 表示一个只能存储 String 类型元素的列表。
  • 泛型的好处:
    • 类型安全: 在编译时检查类型错误,避免运行时类型转换异常。
    • 代码可读性: 代码更清晰,更容易理解。
    • 代码复用: 可以编写更通用的代码,处理不同类型的集合。

七、并发集合 (Concurrent Collections)

java.util.concurrent 包提供了一组线程安全的集合类,用于多线程环境:

  • ConcurrentHashMap: 线程安全的 HashMap。
  • CopyOnWriteArrayList: 线程安全的 List,适用于读多写少的场景。
  • CopyOnWriteArraySet: 线程安全的 Set,适用于读多写少的场景。
  • ConcurrentLinkedQueue: 线程安全的无界队列。
  • ConcurrentLinkedDeque: 线程安全的无界双端队列。
  • 阻塞队列 (BlockingQueue): ArrayBlockingQueue, LinkedBlockingQueue, PriorityBlockingQueue, DelayQueue, SynchronousQueue

八、最佳实践

  1. 选择合适的集合类型: 根据你的需求选择最合适的集合接口和实现类。 考虑以下因素:

    • 是否需要有序?
    • 是否允许重复元素?
    • 是否需要根据键查找值?
    • 是否需要线程安全?
    • 插入、删除、查找的频率?
  2. 使用泛型: 始终使用泛型来指定集合中存储的元素类型,提高类型安全性。

  3. 面向接口编程: 使用接口类型(例如 List, Set, Map)声明变量,而不是使用具体的实现类类型。

  4. 使用增强 for 循环: 优先使用增强 for 循环遍历集合,代码更简洁。

  5. 注意并发问题: 在多线程环境下,使用线程安全的集合类,或者使用同步机制来保护非线程安全的集合。

  6. 避免在迭代过程中修改集合: 在使用迭代器遍历集合时,不要直接修改集合的结构(例如添加或删除元素),否则可能会抛出 ConcurrentModificationException。 可以使用迭代器的 remove() 方法删除元素,或者使用 ListIterator 修改列表。

  7. 了解集合的性能特征: 不同的集合实现类具有不同的性能特征,了解这些特征可以帮助我们选择最合适的集合。

  8. 使用 Collections 工具类: 充分利用 Collections 工具类提供的各种静态方法,简化集合操作。

  9. 合理设置集合的初始容量: 对于 ArrayList、HashMap 等基于数组的集合,在创建时指定一个合适的初始容量,可以减少扩容操作,提高性能。

  10. 注意 null 值: 一些集合 (例如HashMap, ArrayList) 允许null值, 一些集合 (例如 TreeMap, Hashtable) 不允许。

总结

Java 集合框架是 Java 编程中非常重要的一个部分,它提供了一组强大、灵活、高效的工具来处理对象集合。

JAVA集合框架(Collections Framework) Java集合框架提供了一套性能优化的集合类和接口,以及与之配套的算法。它们极大地简化了集合的处理,是Java程序开发中不可或缺的一部分。通过熟练地使用集合框架,可以提高编码效率,增强程序的健壮性和可维护性。 阅读详情

相关推荐

学习笔记20 Java Collections Framework概览

forEachmethod。

qq_52315213的博客 331

Java集合框架(Collections Framework)入门

本文将深入解析Java集合框架的基本组成,介绍常用集合类型及其使用场景,帮助你更好地掌握集合在Java开发中的应用。

YT的博客 1180

Java后端进阶实战:从核心原理到分布式系统设计

最近和不少准备面试的朋友交流,发现一个普遍现象:大家手头资料很多,但学习路径混乱,要么死磕八股文,要么盲目刷题,结果面试时遇到场景题就懵了。结合我近期辅导和面试的经验,整理了一套我认为当前最有效的 Java 后端进阶路径。这套方法不仅针对面试,更是构建扎实后端能力体系的关键,涵盖了从 Java 基础、核心框架到分布式、数据库、JVM 乃至 AI 辅助学习的实战策略。 1. 为什么传统的学习方式效率低下? 很多开发者,尤其是工作1-3年的朋友,容易陷入两个极端:一是沉迷于收集各种“面试宝典”、“八股文大全”,

cixu3288的博客 507

一篇文章带你基本了解Java 集合框架、核心接口、以及需要掌握的各个数据结构

Java集合框架为程序员提供了预先包装的数据结构和算法来操纵他们。集合是一个对象,可容纳其他对象的引用。集合接口声明对每一种类型的集合可以执行的操作。集合框架的类和接口均在java.util包中。任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。​结尾语:记录于2023年8月4号16时31分,以上仅为个人在[Java集合框架—Java高级编程—菜鸟教程](Java 集合框架 | 菜鸟教程 (runoob.com)

Stevedash的博客 563

Java 集合框架(Collection Framework)全解析

核心分类单列集合(Collection):List(有序可重复)、Set(无序不可重复)、Queue(队列);双列集合(Map):存储键值对,Key 唯一(如 HashMap)。新手首选实现类List → ArrayList(查询快、用法简单);Set → HashSet(去重高效);Map → HashMap(键值映射首选)。核心特性ArrayList 查询快、增删慢;LinkedList 相反;HashSet 去重依赖hashCode()equals();

yyxiangqianc的博客 888

Java语言的集合框架(Collections Framework)

Java的集合框架为开发者提供了灵活且高效的数据结构和操作API。通过理解各种集合的特点和使用场景,可以帮助开发者更好地管理和操作数据,提高代码的可维护性和性能。在开发过程中,根据需求选择合适的集合类型和操作,将使得Java程序更加高效和简洁。希望本文对于读者理解和使用Java集合框架提供了一定的帮助。

2401_90032085的博客 618

Outline of the Collections Framework 集合框架大纲

The collections framework consists of: Collection interfaces- The primary means by which collections are manipulated. Collection- A group of objects. No assumptions are made about the order of the collection (if any) or whether it can contain duplicat..

huixizhu的专栏 196

Java Collections Framework

Table of Contents If you're viewing this document online, you can click any of the topics below to link directly to that section. 1. Tutorial tips 2 2. Collections Framework 3 3. Collection interfaces and classes 5 4. Special collection implementations 22 5. Historical collection classes 25 6. Algorithm support 28 7. Usage issues 32 8. Alternative collections 35 9. Exercises 36 10. Wrapup 44

万字JavaSE知识图谱:从核心原理到实战避坑的系统性梳理

JavaSE作为Java语言的标准版,是构建所有Java应用的基石,其核心在于提供一套完整的编程模型和丰富的API库。理解其底层原理,如JVM内存模型、面向对象思想、集合框架的数据结构与算法,是编写高效、健壮代码的关键。这些技术价值体现在提升代码质量、保障系统性能与并发安全上,广泛应用于企业级后端开发、大数据处理和Android应用等领域。本文基于【知识图谱】的系统化梳理方法,结合【集合框架】等高频核心模块的深度解析,旨在帮助开发者构建清晰、稳固的JavaSE知识体系,有效应对技术面试与复杂业务场景。

weixin_30268921的博客 321

基于Python+OpenCV中文及符号检测

一、项目背景与意义在图像处理、文档识别、自动翻译等场景中,中文及符号的准确检测是一个重要且复杂的任务。传统的字符检测方法往往对英文等拉丁字母系的识别效果较好,但对中文及特殊符号的识别准确率较低。本项目旨在利用Python编程语言结合OpenCV库,开发一个能够高效、准确地检测图像中中文及符号的系统,为相关领域的研究和应用提供技术支撑。二、技术实现图像预处理:利用OpenCV的图像处理功能,对输入的图像进行灰度化、二值化、滤波去噪等预处理操作,以提高中文及符号检测的准确性[1]。

2301_79809972的博客 1119

【PCIe DL_Feature详解】

   Data Link Control and Management State Machine在PCIe Gen4引入了DL_Feature这个状态,该状态主要用来协商PCIe link 两端是否支持新的DL Feature,目前为止DL Feature只引入了Scaled Flow Control 来提高Gen4及以上的效率。   DL_Feature 这个状态是可选的,当 Data Link Feature Extended Capability中Data Link Feature Exchang

sinat_38294441的博客 3233

Java集合框架(Collections Framework)

Java的集合框架(Collections Framework)是一个统一的架构,用于表示和操作集合,如列表(List)、集合(Set)、队列(Queue)和映射(Map)等。这个框架提供了许多接口和实现类,使得开发者可以更方便地处理集合数据。

dsvABDHSD的博客 1123

薛定谔虚拟筛选实战:如何用PDB文件快速构建受体格点(避坑指南)

本文提供了薛定谔虚拟筛选实战指南,聚焦于如何从PDB文件快速、精准地构建受体格点。文章详细解析了可变残基的理性处理策略、基于配体尺寸的盒子量化设置方法,并分享了高级约束与排除体积的实战技巧,旨在帮助用户避开常见陷阱,提升虚拟筛选的成功率与效率。

weixin_28419039的博客 252

Java中的集合框架(Collections Framework)深入解析

在Java编程中,集合框架(Collections Framework)是一个重要的组成部分,它为程序员提供了一套丰富的接口和类,用于存储、检索和操作对象集合。下面,我将从技术难点、面试官关注点、回答吸引力和代码举例四个方面,详细解析Java中的集合框架。

2401_84909321的博客 599

ANSYS Discovery 2023R1 入门:手把手教你玩转几何模型参数化(附历史追踪避坑指南)

本文详细介绍了ANSYS Discovery 2023R1中几何模型参数化建模的全流程,包括基础设置、参数化实战技巧及历史追踪避坑指南。通过Workbench集成和智能参数控制,工程师可以高效完成设计迭代,特别适合需要频繁调整几何模型的仿真场景。文章还提供了参数丢失的预防策略和工业应用实例,帮助用户快速掌握这一提升设计效率的核心技能。

weixin_33693070的博客 462

傅里叶光学(1)

傅里叶光学,可以看作是通信理论中傅里叶变换等一系列数学思想以及系统理论与光学(主要是衍射光学)相结合的产物关于傅里叶光学的应用领域,本节介绍了成像,当然事实上不可能仅限于成像,经典的还如激光散斑的一些应用,干涉计量,还有傅里叶变换光谱学等等。最后总结一下,傅里叶光学我认为可以看做一个工具,对于任意的系统,它能给出一些数学思想与物理原理进行解释和分析,找出系统的扰动和响应的关系,或者说根据扰动和响应,来研究或者设计一个系统。

m0_53607446的博客 1670

Java 集合框架(Java Collections Framework)详细介绍

Java集合框架(JCF)是Java核心API的重要组成部分,提供了一套统一高效的接口和类来管理对象集合。主要包括两大体系:Collection体系(存储单个元素)和Map体系(存储键值对)。Collection又分为List(有序可重复)、Set(无序不可重复)和Queue(队列)三种类型,各类型有不同实现类如ArrayList、HashSet等。Map接口存储键值对,主要实现类包括HashMap、TreeMap等。JCF采用分层设计(接口-抽象类-具体类),支持泛型并提供丰富操作方法,解决了数组的局限性

Giants2024的博客 1722

Spring AI 实战(11):收官!10 道面试高频题 + 一张脑图带走全系列

本文是Spring AI系列的收官篇,通过知识脑图梳理前10篇内容,提供面试高频题和避坑清单。主要内容包括: 知识脑图:分6层(核心抽象、输入增强、输出控制等)总结Spring AI全栈技术。 10道高频面试题:涵盖ChatClient/ChatModel关系、结构化输出、RAG链路等核心知识点。 避坑清单:列出9条常见问题及解决方案,如向量维度匹配、Advisor顺序等。 技术对比:分析Spring AI、LangChain4j和Spring AI Alibaba的差异与适用场景。 使用建议:提供面试复习

不才不才不不才的博客 296

java集合框架(collections framework)详解

什么是集合框架: java中有一种特殊的类,这些类的内部可以存放多个其他类型的不同对象 文章涉及集合数组的区别,collection接口,iterator迭代器,list接口及其用法,LinkedHashSet集合等有关内容 简介: 集合和数组的区别: 数组 集合框架 定长 变长 只能存储基础的数据类型(每个数组只能存储一种) 可存储任何类型的变量(Object祖宗类) 如...

潇洒不放纵的博客 816

优化点列图(RMS半径)的操作数

优化点列图(RMS半径)的操作数

weixin_72050316的博客 2257

Lumerical 教程目录,说明及个人感悟(共计138篇,持续更新中)

Lumerical---教程说明及个人感悟

u011699626的博客 1万+

Java集合框架(JCF Java collections framework)

Java Collection框架中包含了大量集合接口以及这些接口的实现类和操作他们的方法。 包括: 集合(Collection) 列表(List) ArrayList 有序 可排序 可重复 ,可以for循环遍历 线程不安全 底层是数组 查询快增删慢 LinkedList Vector Stack 队列(Queue) ArrayBlockingQueue LinkedBlo...

无极 749

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java Collection Framework

Java Collection Framework – JCF 本遍文章, 是抄了一遍他人博客的内容.下面是原链接的跳转按钮. 点击此处调转 容器就是可以容纳其他Java对象的事物(或者说对象), Java Collection Framework(JCF)为Java开发者提供了通用的容器. Java集合主要划分为四个部分: Collection(List列表, Set集合) Map映射 迭代器(Iterator, Enumeration) 工具类(Arrays, Collections) 背景 数

qq_45591813的博客 634

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java Collections Framework(Java集合基础)

Java Collections Framework(Java集合框架基础) 1、Java.lang.Iterable(接口 Iterable< T >) 1.1、作用 实现这个接口允许对象成为“foreach”语句的目标 public interface Iterable< T > 1.2、方法 方法摘要 方法 方法描述 Iterator< T&...

唐僧取经 215
上一篇: 抽象工厂模式 (Abstract Factory Pattern) 在 Spring Boot 中的应用场景
下一篇: Java Collections 类中方法详解
冰糖心书房
博客等级 码龄15年 6014粉丝 690原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰糖心书房

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值