Java知识点小总结(二)
来源:互联网 发布:保险公司业务数据分析 编辑:程序博客网 时间:2024/05/15 12:29
1、Collection
各常用集合类关系如下(Collection是单列集合,Map是双列集合):
(1)List:
List是有序的Collection,可以对列表中每个元素的插入位置进行精确地控制,可以根据元素的整数索引访问元素,并搜索列表中的元素,可重放重复元素,元素的存取是有序的。
~Vector:线程安全,查询速度慢,底层数据结构是数组,当存储元素个数超过容量时,Vector存储空间默认增长为原来的两倍,并且可以设置增长空间的大小。
~ArrayList:线程不安全,查询速度快,底层数据结构是数组,当存储元素个数超过容量时,ArrayList默认增长为原来的1.5倍,不能设置增长空间的大小.
~LinkedList:线程不安全,查询速度快,底层数据结构是链表。
(2)Set:
Set中元素是无序的,不可重复。没有索引,取出元素的方法只有迭代器。
~HashSet:线程不安全,存取速度快,通过元素的hasCode方法和equals方法保证元素唯一性。HashSet是基于HashMap实现的,详情参考-->java中的HashSet详解
~TreeSet:线程不安全,可以对Set集合中的元素进行排序,通过compareTo方法或compare方法来保证数据的唯一性,元素是以二叉树的形式存放的。TreeSet是基于Navigable实现的,详情参考-->TreeSet源码解析
(3)Map:
Map是双列集合,元素按键值对存储,无放入顺序。
~Treemap:继承AbstractMap,线程不安全,元素有序,TreeMap是基于红黑树实现的,详情参考-->TreeMap
~HashMap:继承AbstractMap,线程不安全,根据键的hashcode值存储数据,根据键可以直接获取它的值;最多允许一条记录的键为空(因为HashMap如果有多个键相同的话新的键对应的值会代替旧的键对应的值),允许多条记录的值为空;没有contains方法有containsvalue和containsKey方法;可以用Collections的synchronizedMap方法使HashMap具有同步的能力;迭代用Iterator;默认容量大小为16,容量必须是2的整数次幂,最大容量是2^31.详情参考-->HashMap、HashTable、TreeMap 深入分析及源码解析
~HashTable:继承Dictionary,线程安全,键值不能为空,有contains方法,迭代用Enumeration,默认容量大小是11,增加方式是2倍的之前的容量+1。
~ConcurrentHashMap:通过分段锁实现线程安全,键值均不能为空。
Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)
- Java知识点小总结(二)
- Java知识点总结(二)
- iOS小知识点总结(二)
- java小知识点总结
- java小知识点总结
- Java小知识点总结
- java小知识点总结
- Java知识点总结二
- Java知识点小总结(一)
- JAVA知识点总结(二)集合框架
- Java基础知识点总结(二)
- Java SE基础知识点总结(二)
- Java面试知识点总结(二)
- Java知识点总结(二)面向对象
- android,java知识点总结 (二)
- java(1)--小知识点总结
- java小知识点总结1
- Java开发小知识点总结
- JAVA入门
- Spark常用函数之Action操作
- 经典排序算法
- 最大子数组问题(三种方式,java实现)
- 华为手机不显示Logcat错误日志的解决办法
- Java知识点小总结(二)
- MFC控件之Button基本用法
- 模拟ATM运行(代码粗糙,敬请批评指正)
- 文档总结:OpenSSH
- Win Server 2003远程桌面提示:要登录到这台远程计算机,您必须拥有这台计算机上的终端服务器用户访问权限提示的解决办法
- macos系统下共语言gopath变量的设置
- 暴力破解凯撒密码python实现
- 应用哈希对字符串问题进行高效处理
- MFC 点击按钮,弹出另一个对话框