Java中的集合

Java中的集合

java.util 包中的集合

Java 集合框架提供了各种集合类,用于存储和管理对象。以下是 Java 集合框架中常见的集合类:

  • List 接口表示一个有序的集合,其中的元素可以重复。List 接口有以下实现类:

    • ArrayList:动态数组,可以根据需要自动调整大小。
    • LinkedList:由节点组成的链表结构,适用于频繁的插入和删除操作。
    • Vector:线程安全的动态数组,可以根据需要自动调整大小。
  • Set 接口表示一个无序的集合,其中的元素不能重复。Set 接口有以下实现类:

    • HashSet:基于哈希表实现的集合,不允许重复元素。
    • TreeSet:基于红黑树实现的有序集合,按照自然顺序或自定义比较器进行排序。
  • Map 接口表示一个键值对映射,其中的键是唯一的。Map 接口有以下实现类:

    • HashMap:基于哈希表实现的键值对映射,使用键来快速查找值。
    • TreeMap:基于红黑树实现的有序键值对映射,按照键的自然顺序或自定义比较器进行排序。
    • LinkedHashMap:基于哈希表和双向链表实现的有序键值对映射,保持插入顺序。
  • Queue 接口表示一个先进先出(FIFO)的队列。Queue 接口有以下实现类:

    • LinkedList:由节点组成的链表结构,可以根据需要自动调整大小。
    • PriorityQueue:基于堆实现的队列,元素按照优先级顺序进行排序。
  • Deque 接口表示一个双端队列,可以从两端插入和删除元素。Deque 接口有以下实现类:

    • LinkedList:由节点组成的链表结构,可以根据需要自动调整大小。
    • ArrayDeque:基于数组实现的双端队列,可以根据需要自动调整大小。

这些集合类都位于 Java 的 java.util 包中。您可以根据具体的需求选择适合的集合类。

Guava 中的集合类和接口

Guava 中的集合类提供了许多实用的功能和扩展,以下是一些常见的 Guava 集合类:

  1. ImmutableList:不可变的列表,一旦创建就不能被修改。
  2. ImmutableSet:不可变的集合,不允许重复元素。
  3. ImmutableMap:不可变的映射,提供了键值对的映射关系。
  4. ImmutableMultiset:不可变的多重集合,允许元素重复。
  5. ImmutableSortedSet:不可变的有序集合,按照自然顺序或自定义比较器排序。
  6. ImmutableTable:不可变的表格,提供了二维的行列映射。
  7. Multimap:一个键可以映射到多个值的集合。
  8. BiMap:一个键和值可以互相映射的集合。
  9. Table:一个二维的键值对映射。
  10. RangeSet:表示连续范围的集合,可以进行范围操作。
  11. RangeMap:将连续范围映射到值的集合。

Apache Commons Collections 中的集合类和接口

Apache Commons Collections 是一个开源的 Java 库,它提供了许多常用的集合类和接口。以下是一些常见的集合类和接口:

集合类:

  • Bag:一个可重复元素的集合。
  • BidiMap:一个双向映射的集合。
  • BitSet:一个位集合。
  • CircularFifoBuffer:一个循环缓冲区。
  • CursorableLinkedList:一个可以进行游标操作的链表。
  • DualHashBidiMap:一个双向映射的哈希表。
  • EnumMap:一个基于枚举类型的映射。
  • FixedSizeList:一个固定大小的列表。
  • FixedSizeMap:一个固定大小的映射。
  • FixedSizeSet:一个固定大小的集合。
  • HashBag:一个基于哈希表的可重复元素的集合。
  • LazyList:一个延迟计算的列表。
  • LinkedMap:一个基于链表的映射。
  • LinkedSet:一个基于链表的集合。
  • LRUMap:一个基于最近最少使用算法的映射。
  • MultiHashMap:一个允许多个值映射到同一个键的映射。
  • MultiValueMap:一个允许多个值映射到同一个键的映射。
  • PredicatedCollection:一个带有谓词验证的集合。
  • PredicatedList:一个带有谓词验证的列表。
  • PredicatedMap:一个带有谓词验证的映射。
  • PredicatedSet:一个带有谓词验证的集合。
  • PriorityQueue:一个优先级队列。
  • ReferenceMap:一个基于引用类型的映射。
  • SequencedHashMap:一个基于链表的有序映射。
  • SetUniqueList:一个同时保持列表和集合特性的列表。
  • SingletonList:一个只包含一个元素的列表。
  • SingletonMap:一个只包含一个键值对的映射。
  • SingletonSet:一个只包含一个元素的集合。
  • SynchronizedBag:一个线程安全的可重复元素的集合。
  • SynchronizedCollection:一个线程安全的集合。
  • SynchronizedList:一个线程安全的列表。
  • SynchronizedMap:一个线程安全的映射。
  • SynchronizedSet:一个线程安全的集合。
  • TransformedBag:一个对元素进行转换的集合。
  • TransformedList:一个对元素进行转换的列表。
  • TransformedMap:一个对键值对进行转换的映射。
  • TransformedSet:一个对元素进行转换的集合。
  • TreeBag:一个基于红黑树的可重复元素的集合。
  • TypedCollection:一个带有类型限制的集合。
  • TypedMap:一个带有类型限制的映射。
  • TypedSet:一个带有类型限制的集合。
  • UnboundedFifoBuffer:一个无界缓冲区。
  • UnmodifiableBidiMap:一个不可修改的双向映射。
  • UnmodifiableCollection:一个不可修改的集合。
  • UnmodifiableList:一个不可修改的列表。
  • UnmodifiableMap:一个不可修改的映射。
  • UnmodifiableSet:一个不可修改的集合。

Java Concurrent 包中的集合类和接口

Java Concurrent 包提供了以下集合类:

  • ConcurrentHashMap:线程安全的哈希表实现,用于存储键值对。
  • ConcurrentSkipListMap:线程安全的跳表实现的有序映射。
  • ConcurrentSkipListSet:线程安全的跳表实现的有序集合。
  • CopyOnWriteArrayList:线程安全的动态数组实现,支持并发读取。
  • CopyOnWriteArraySet:线程安全的集合实现,支持并发读取。
  • LinkedBlockingQueue:线程安全的阻塞队列实现,支持生产者-消费者模式。
  • ArrayBlockingQueue:线程安全的有界阻塞队列实现。
  • ConcurrentLinkedQueue:线程安全的非阻塞队列实现。
  • LinkedTransferQueue:线程安全的链式传输队列实现。
  • PriorityBlockingQueue:线程安全的优先级阻塞队列实现。
  • DelayQueue:线程安全的延迟队列实现。
  • SynchronousQueue:线程安全的同步队列实现。

你可能感兴趣的:(JAVA,java,集合,list,set,map,table)