Java集合框架
来源:互联网 发布:上瘾网络剧全集资源 编辑:程序博客网 时间:2024/05/22 04:38
泛型。添加其他类型的元素,编译时报错,避免运行时出现类型转换异常。代码整洁,不需要使用显示转换和instanceOf操作符。
Iterator和ListIterator的区别
(1)Iterator遍历Set和List,ListIterator只能遍历List。
(2)Iterator只能向前遍历,ListIterator可以双向遍历。
(3)ListIterator增加了功能,比如添加一个元素,替换一个元素,获取前面或后面元素的索引位置。
遍历List的方式
List<String> strList=new ArrayList<String>();
for(String str:strList){
System.out.println(str);
}
Iterator<String> it=strList.iterator();
while(it.hasNext()){
String str=it.next();
System.out.println(str);
}
使用迭代器更加线程安全,因为可以确保,当前遍历的集合元素被更改的时候,会抛出ConcurrentModificationException。
Java.util包中的所有集合类都被设计为fail-fast的,而java.util.concurrent中的集合类(ConcurrentHashMap和CopyOnWriteArrayList这类并发集合类)都为fail-safe的。Fail-fast迭代器抛出ConcurrentModificationException,而fail-safe迭代器从不抛出ConcurrentModificationException。
HashMap和HashTable的区别
(1)HashTable线程安全,HashMap线程不安全。
(2)HashMap允许key和value为空。只允许存在一个key为空。HashTable不允许。
(3)LinkedHashMap,HashMap的子类,支持顺序遍历。
(4)HashMap提供对key的Set进行遍历,因此它是fail-fast的,但HashTable提供对key的Enumeration进行遍历,它不支持fail-fast。
HashMap工作方式
先通过hashcode查找到元素位于哪个哈希桶,之后使用equals方法在链表中查找到元素。
TreeMap适用于对key有序的集合进行遍历。TreeMap线程不安全。
TreeMap实现SortedMap接口。添加到SortedMap实现类的元素必须实现Comparable接口,或者给它的构造函数提供一个Comparator接口的实现。
TreeMap基于红黑树实现。
TreeMap(Comparator c)。构建一个map,并且使用特定的比较器对key进行排序。
ArrayList和Vector的区别
(1)Vector线程安全,ArrayList线程不安全。
(2)ArrayList速度更快。
(3)ArrayList更加通用,可以使用Collections工具类轻易获取同步列表和只读列表。
ArrayList和LinkedList的区别
(1)ArrayList是基于动态数组的数据结构,LinkedList是基于链表的数据结构。
(2)对于随机get和set,ArrayList优于LinkedList,因为LinkedList要移动指针。ArrayList访问元素时间复杂度O(1),LinkedList访问元素时间复杂度为O(n)。
(3)对于随机的add和remove,LinkedList优于ArrayList,因为ArrayList要移动数据。
(4)LinkedList比ArrayList消耗更多的内存。
Vector、HashTable、Properties、Stack是同步类。
使用Collections.unmodifiableCollection(Collection c)方法创建一个只读集合,这将确保改变集合的任何操作都会抛出UnsupportedOperationException。
使用Collections.synchronizedCollection(Collection c)根据指定集合来获取一个synchronized(线程安全的)集合。
- Java集合:集合框架
- 【Java】java集合框架
- [Java]Java集合框架
- JAVA集合框架和集合
- 【集合】Java集合框架介绍
- Java集合之集合框架
- [集合]Java的集合框架 Collection集合
- Java集合框架 (一)
- Java集合框架 (二)
- Java集合框架(三)
- Java集合框架
- 也来谈Java集合框架
- 也来谈Java集合框架
- Java集合框架 (一)
- Java集合框架
- 也来谈Java集合框架
- java集合框架
- Java集合框架总结
- Hdu 5302 Connect the Graph 2015 Multi-University Training Contest 2
- 图像标注 图像分割,特征提取和分类算法
- 一切成功源于积累——20150723 货币对之澳美 典型跌势 5分钟定理 八连斩 再次中计
- ADO.NET TableMappings使用方法
- oc013---oc程序的整体语法结构
- Java集合框架
- centos6.6下安装GreenPlum4.3.5.2
- 类的扩展
- 2015 Multi-University Training Contest 2 1009 I Wanna Become A 24-Point Master(HDU5308) 构造
- Android-Service
- Permutations II
- 为什么写技术博客对新人如此重要?
- iOS 学习资料整理
- shell脚本对服务器的监控