java集合
来源:互联网 发布:java 打war包命令 编辑:程序博客网 时间:2024/06/05 10:57
List接口
- ArrayList
- 动态数组,与Arr[]一样,不过默认情况下生成10个初始容量,并且可以动态扩容。
- LinkedList
- 双向链表
- vector
- 与ArrayList一样。但是线程安全的。
- stack
- 后进先出的堆栈
Set接口
- EnumSet
- 枚举类型的专用set,所有元素都必须是枚举类型
HashSet
- 内部以HashCode实现,内部元素的顺序是由哈希码来决定的,不保证set的迭代顺序,特别是它不保证该顺序恒久不变。
- 当向Set中插入数据时,会首先调用元素对象中的hashCode()方法,如果集合中不存在相同hashCode,则插入该元素。如果已经存在具有相同hashCode的元素,则会调用equals()方法进行比较,如果返回true,表示相同,不插入元素,否则插入元素。
- 注意该类是非线程安全的,如果想获得线程安全的HashSet可以使用如下方法:
Collections.synchronizedSet(new HashSet());
LinkedHashSet
- 基于HashSet实现,但是保持元素的有序状态。内部维护一个双向链表。
- 类是非线程安全的,如果想获得线程安全的LinkedHashSet可以使用如下方法:
Collections.synchronizedSet(new LinkedHashSet());
TreeSet
- 基于TreeMap来实现的,生成一个排序状态的Set。
- 可以使用元素的自然顺序排序
- 也可以根据创建Set时自定义的Comparator进行排序。
CopyOnWriteArraySet
- 线程安全
- 该类是基于CopyOnWriteArrayList实现的,所以该类共享CopyOnWriteArrayList的基本属性,对写操作加锁并即写时复制(Copy-On-Write,是用于程序设计中的一种优化策略),对多操作不加锁。线程安全等。
ConcurrentSkipListSet
- SortedSet
- 和TreeSet一样,添加的元素按照元素的自然顺序(递增或其他顺序)在集合中进行存储,或者根据传入的实现Comparator接口的实例来对元素进行排序。
- 基于ConcurrentSkipListMap实现的,是线程安全的,并且其迭代器是弱一致的,不会抛出ConcurrentModificationException异常,可以并发地对集合处理其他操作。
Map接口
- HashMap
- 非线程安全
- TreeMap
- 键以某种顺序规则排序,内部以红黑树实现,实现了sortedMap接口
HashTable
- hashtable是线程安全的,即hashtable的方法都提供了同步机制;hashmap不是线程安全的,即不提供同步机制 ;hashtable不允许插入空值,hashmap允许!
ConcurrentHashMap
- 线程安全
阅读全文
0 0
- Java集合:集合框架
- java集合---set集合
- JAVA 集合 的 集合
- 【集合】Java集合对比
- JAVA集合-Map集合
- JAVA集合-Set集合
- JAVA集合-List集合
- java集合------Map集合
- Java集合----List集合
- Java集合----Set集合
- Java集合----Map集合
- JAVA集合
- JAVA集合
- Java集合
- JAVA集合
- Java集合
- Java集合
- java 集合
- kotlin 官方学习教程之基本类型
- CF
- python 3 安装igraph
- Spring之——两种任务调度Scheduled和Async
- 欢迎使用CSDN-markdown编辑器
- java集合
- 自定义属性
- ThreadPoolExecutor机制【转】
- Ubuntu 16.04 LTS + GTX1060 + CUDA8.0 解决循环登录问题
- 在二叉查找树中插入节点
- C# WeifenLuo.WinFormsUI.Docking控件使用
- Java中的序列化是什么意思?有什么好处?
- 开源博客 EumJi-blog 简介篇
- POJ-3176-Cow Bowling-(简单dp)