java集合分类

Java集合分类:

  • List
  • Set
  • Map
  • Queue
  • 数组
  • 工具类
  • 扩展类

List:

  • ArrayList :动态数组。
  • LinkedList:双向链表。
  • Vector:线程安全的动态数组。
  • Stack:对象栈,遵循先进后出的原则。

Set:

  • EnumSet:枚举类型专用Set,所有元素都是枚举类型。
  • HashSet:以哈希码决定元素位置的set
  • TreeSet:插入时会自动排序的set,但是如果中途修改元素大小,则不会再修改后重新排序,只会在插入时排序。

Map:

  • TreeMap :自动排序map,根据key值自动排序。
  • HashMap:Entry数组,以key的哈希码决定元素位置,所以,要保证key的哈希码不一致,如果碰到值不同但哈希码相同的key,会以单向链表扩展
  • HashTable:线程安全的
  • Properties:HashTable的子类,从Property文件中加载数据,并提供方便的读写操作。
  • EnumMap:Key必须是枚举类型。

Queue:

  • 阻塞式队列,满了以后再插入元素会抛出异常;
    • ArrayBlockingQueue :以数组方式实现。
    • PriorityBlockingQueue:依照优先级组件的队列。
    • LinkedBlockingQueue:通过链表实现。
  • 非阻塞队列,无边界,只要内存允许,可以持续追加。
    • PriorityQueue
  • 双端队列,支持在头尾两端插入和移除元素。而上面的阻塞队列和非阻塞队列都时单端队列,只能在一端插入,另一端删除。
    • ArrayDeque
    • LinkedBlockingDeque
    • LinkedList

工具类:

  • 数组工具类
    • java.util.Arrays
    • java.lang.reflect.Array
  • 集合工具类
    • java.util.Collections

扩展类:
可以自己写一个List,或使用第三方实现例如:

  • Apache的Commons-collections扩展包
  • Google的google-collections扩展包

猜你喜欢

转载自www.cnblogs.com/shuia/p/9300341.html