Java(集合)
2014-04-03 22:44
393 查看
ArrayList,LinkedList以及Vector的区别
1.ArrayList底层是由数组维护的,默认情况下会初始化一个长度为10的Object类型的数组。
2.当数组中元素的个数被填满,会新生成一个长度为(原长度 * 3)/10 + 1 的新数组(初次为16个),将原来的数组元素copy到新数组,继续添加元素。
3.ArrayList和Vector底层都是由Object类型的数组维护的,只是Vector中的方法都是synchronized的,而ArrayList中的方法都不是synchronized的,如果会有同步问题应该使用
Vector,否则为了效率应该使用ArrayList。
4.对于ArrayList和Vector,查找速度快,增加和删除操作慢。本质上是由数组的特性决定的
5.对于LinkedList,查找速度慢,增加和删除速度快。本质上是由双向循环链表的特点来决定的
HashMap和HashTable的区别
1.HashMap里面的键值都可以为null,里面的所有方法都是异步的
2.HashTable里面的键值都不可以为null,并且里面的所有方法都是synchronized
1.ArrayList底层是由数组维护的,默认情况下会初始化一个长度为10的Object类型的数组。
2.当数组中元素的个数被填满,会新生成一个长度为(原长度 * 3)/10 + 1 的新数组(初次为16个),将原来的数组元素copy到新数组,继续添加元素。
3.ArrayList和Vector底层都是由Object类型的数组维护的,只是Vector中的方法都是synchronized的,而ArrayList中的方法都不是synchronized的,如果会有同步问题应该使用
Vector,否则为了效率应该使用ArrayList。
4.对于ArrayList和Vector,查找速度快,增加和删除操作慢。本质上是由数组的特性决定的
5.对于LinkedList,查找速度慢,增加和删除速度快。本质上是由双向循环链表的特点来决定的
HashMap和HashTable的区别
1.HashMap里面的键值都可以为null,里面的所有方法都是异步的
2.HashTable里面的键值都不可以为null,并且里面的所有方法都是synchronized
相关文章推荐
- Java之集合(二十一)LinkedTransferQueue
- java:集合的自定义多重排序
- Java集合----Collection工具类
- 黑马程序员——Java集合基础知识之Map
- 黑马程序员——Java语言:集合
- Java集合源码学习(21)_Map接口子接口SortedMap和NavigableMap
- Java中各种集合特点总结
- JAVA中关于List集合和map集合之间的继承关系
- 从json对象集合表达式中得到一个java对象列表
- Java 集合系列之 HashMap详细介绍(源码解析)和使用示例
- Java 集合框架梳理
- 【Java】【集合】Collections
- Java集合小结
- Java集合选择与区别
- Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例
- java中集合
- java://Comparator、Comparable的用法(按照要求将map集合的键值对进行顺序输出)
- java中集合的简单复习
- Java 集合系列之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- java集合1