Java中那些常见概念总结

0
回复
104
查看
[复制链接]

3

主题

3

帖子

20

安币

初级码农

Rank: 1

发表于 2019-5-23 15:30:01 | 显示全部楼层 |阅读模式
如果对本篇文章感兴趣,请前往,原文地址:http://www.apkbus.com/blog-144284-80120.html

### 1.HashMap和HashTable的区别- [x] HashMap去掉了contains方法- [x] HashTable是**同步**的(线程安全)- [x] HashMap允许空键值- [x] HashMap执行快速失败机制- [ ] ```Fast-fail```机制:在使用迭代器的过程中有其它线程修改了集合对象结构或元素数量,都将抛出ConcurrentModifiedException- HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)。- Hashtable和HashMap有几个主要的不同:**线程安全以及速度**。仅在你需要完全的线程安全的时候使用Hashtable,而如果你使用Java 5或以上的话,请使用**ConcurrentHashMap**吧。### 2.java的线程安全类Vector、Stack、HashTable、ConcurrentHashMap、Properties### 3.java集合框架Collection - List- 有顺序以线性方式存储,可以存放重复对象Collection - List - ArrayList- 数组方式存储数据  索引数据快插入数据慢  线程不安全Collection - List - LinkedList- 双向链表实现存储  索引数据慢插入数度较快  线程不安全(比安全性能好)Collection - List - Vector- 数组方式存储数据  索引数据快插入数据慢  线程安全Collection - List - Vector - Stack- 继承自Vector,实现一个后进先出的堆栈Collection - Set- 无顺序,不包含重复的元素Collection - Set - HashSet- 为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。Collection - Set - TreeSet- 保存次序的Set, 底层为树结构。使用它可以从Set中提取有序的序列。Collection - Set - LinkedHashSet- 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。Map- 键必须是唯一Map - HashMap- HashMap:基于散列表的实现  允许空键空值  线程不安全  (与Hashtable基本一致)Map - TreeMap- TreeMap: 基于红黑树数据结构的实现  不允许空键空值  线程不安全Map - HashTable- Hashtable:基于散列表的实现  允许空键空值  线程安全Map - WeakHashMap- 改进的HashMap,它对key实行“弱引用”,如果一个key不再被外部所引用,那么该key可以被GC回收。Map - LinkedHashMap- 具有HashMap的所有特性。- 内部对数据的存储也是数组加链表的形式。- **多了一个双向链表来维护内部数据的顺序关系。**SparseArray- 采用了二分法方式存储数据(安卓的一个集合类)- key必须为int类型,这中情况下的HashMap可以用SparseArray代替- 避免了HashMap自动装箱得到内存消耗ArrayMap- ```ArrayMap``` 实现了```implements Map```接口,所以它也是一个**关联数组、哈希表**。- 存储以```key->value``` 结构形式的数据。- 它也是**线程不安全**的,允许**key为null**,**value为null**。- 内部实现是**基于两个数组**。- 一个```int[]```数组,用于保存每个item的```hashCode```.- 一个```Object[]```数组,保存```key/value```键值对。**容量**是上一个数组的**两倍**。- 使用**二分查找法**得到相应的index>在除需要排序时使用TreeSet,TreeMap外,都应使用HashSet,HashMap,因为他们的效率更高。3.1 ```ArrayList```的构造函数有三个- 无参构造 容量为10- ArrayList(Collections
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )