Java—集合简述

集合类继承结构图

          Collection
              |
   ---------------------
  |          |           |
Set        List         Queue
  |          |           |
SortedSet  ArrayList   Deque
  |        LinkedList    |
NavigableSet  Vector    ArrayDeque
  |         Stack        |
TreeSet                LinkedList
                         |
                     PriorityQueue

       Map
        |
  -----------------
  |               |
SortedMap     ConcurrentMap
  |               |
NavigableMap  ConcurrentHashMap
  |
TreeMap
  |
HashMap
  |
LinkedHashMap

详细说明

  1. Collection 接口 是所有集合的根接口,它提供了对集合对象进行基本操作的方法。Set, List, 和 QueueCollection 接口的三个主要子接口。

  2. Set 接口:一个不包含重复元素的集合。

  • SortedSet:保证集合中的元素处于排序状态。

  • NavigableSet:提供了导航方法。
  • TreeSet:基于红黑树实现的 NavigableSet。
  1. List 接口:一个有序集合,可以包含重复元素。

    • ArrayList:基于动态数组实现的 List。
    • LinkedList:基于双向链表实现的 List,也实现了 Deque 接口。
    • Vector:同步的动态数组。
      • Stack:后进先出 (LIFO) 的栈。
  2. Queue 接口:通常用于按顺序处理元素。

    • Deque:双端队列,可以从两端添加和移除元素。
      • ArrayDeque:基于动态数组实现的 Deque。
      • LinkedList:也实现了 Deque 接口。
    • PriorityQueue:基于优先级堆的队列。
  3. Map 接口:用于存储键值对映射,不属于 Collection 接口的子接口。

    • SortedMap:保证键处于排序状态。
      • NavigableMap:提供了导航方法。
        • TreeMap:基于红黑树实现的 NavigableMap。
    • ConcurrentMap:提供线程安全的并发映射。
      • ConcurrentHashMap:高效的并发哈希映射。
    • HashMap:基于哈希表实现的 Map。
      • LinkedHashMap:维护元素插入顺序或访问顺序的 HashMap。

总结

在Java集合框架中,线程安全和有序性是两个重要的概念。线程安全表示一个类的实例可以安全地被多个线程访问而不会产生数据不一致的情况,而有序性则表示集合中的元素是否可以按照某种顺序进行访问或遍历。下表总结了Java集合框架中常见类的线程安全性和有序性:

需要注意的是,虽然HashTable和ConcurrentHashMap都是线程安全的,但是ConcurrentHashMap通过分段锁实现更好的并发性能,推荐在多线程环境中使用。另外,ArrayList和LinkedList都是有序的,但是它们的内部实现和性能特点有所不同,需要根据具体的需求进行选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值