31、Java集合概述

目录

一.Collection

二.Map

三.Collection和Map的区别

四.应用场景


        集合是一组对象的集合,它封装了对象的存储和操作方式。集合框架提供了一组接口和类,用于存储、访问和操作这些对象集合。这些接口和类定义了不同的数据结构,如列表、集合、映射等,以支持各种类型的数据操作。
        简单来说,集合是对象的容器,它允许你将多个对象存储在一个单一的数据结构中,并对这些对象进行各种操作,如添加、删除、搜索等。Java集合框架的设计旨在提供一种统一的方式来处理不同类型的集合,从而简化代码的编写和理解。集合类位于java.util包下,都是Collection和Map派生而来的。也就是都是它们的子类或实现类。下面是简要概述:

一.Collection

  Collection接口是集合层次结构中的根接口,它为子接口或实现类定义了一些通用方法。下面是Collection体系机构图。【Collection子接口以及实现类介绍请查看】

31、Java集合概述_第1张图片

        如上图所示Collection接口有3个子接口,它们扩展了Collection接口的功能,以支持不同类型的集合。下面是对常用的接口或实现类的简述:

  • List接口:代表有序的集合,允许重复元素。
    • ArrayList:是基于动态数组实现的列表,它提供快速的随机访问性能,并允许动态调整数组大小。
    • LinkedList:是基于双向链表实现的列表,它支持在列表的任意位置进行高效的插入和删除操作,并提供双向迭代器。
  • Set接口:代表不允许重复元素的集合。不保证元素顺序。
    • HashSet: 基于哈希表实现,不支持排序,元素无序。
    • TreeSet:基于红黑树实现,元素有序,可以按自然顺序或构造时所指定的比较器(Comparator)顺序排列。
  • Queue接口:用于表示元素的先进先出(FIFO)队列,是一种特殊的集合。
    • ArrayDeque: 基于数组实现的双端队列,支持在两端进行高效的插入和删除操作。

二.Map

        Map 是一种存储键值对(key-value pairs)的集合,Map不是Collection的子接口,但它与集合框架紧密结合,提供了丰富的功能来处理关联数据。

31、Java集合概述_第2张图片

Map接口定义了存储键值对的基本结构。Map中每个键都对应一个值,且每个键都是唯一的,不能重复。下面是常用实现类的简介:

  • HashMap:是一个基于哈希表实现的集合,它提供了快速的常数时间复杂度的键值对存储和检索功能,并且允许一个null键和多个null值。
  • TreeMap:是一个基于红黑树实现的有序 Map,它保证键值对按照键的自然顺序或指定的比较器顺序进行排序。

三.Collection和Map的区别

  • 存储结构:
    • Collection:存储的是单一元素的集合,每个元素都是独立的。
    • Map:存储的是键值对(键-值对),每个元素由键和值组成,键是唯一的。
  • 接口和实现:
    • Collection:包括 List、Set 和 Queue 等接口,以及 ArrayList、LinkedList、HashSet 等实现类。
    • Map:包括 Map 接口,以及 HashMap、TreeMap、LinkedHashMap 等实现类。
  • 元素特性:
    • Collection:可以包含重复元素,元素之间没有关联。
    • Map:键不能重复,值可以重复,键和值之间存在映射关系。

四.应用场景

  • Collection:
    • 当你需要存储一组不相关的对象,并且需要频繁地添加、删除或遍历这些对象时,可以使用 Collection。
    • 如果需要有序集合,可以使用 List,如 ArrayList 或 LinkedList。
    • 如果需要存储唯一元素,可以使用 Set,如 HashSet 或 TreeSet。
    • 如果需要实现先进先出(FIFO)的队列操作,可以使用 Queue,如 PriorityQueue 或 ArrayDeque。
  • Map:
    • 当你需要根据唯一标识符(键)来存储和检索对象(值)时,可以使用 Map。
    • 如果需要快速查找与特定键关联的值,可以使用 HashMap。
    • 如果需要保持插入顺序或访问顺序,可以使用 LinkedHashMap。
    • 如果需要有序的键值对集合,可以使用 TreeMap,这在需要按键排序时非常有用。

    

你可能感兴趣的:(JAVA基础知识,java,开发语言)