java-4.容器之问题
1.HashMap和HashTable有什么区别?
1.hashMap去掉了HashTable的contains方法,但是加上了containsValue()和containsKey()方法。
2.hashTable是同步的;而HashMap是非同步的,效率上比hashTable要高。
3.hashMap允许空键值,而hashTable不允许。
2.如何决定使用HashMap还是TreeMap?
对于在Map中插入、删除和定位元素这类操作,选择HashMap。
然而,如果对一个有序的key集合进行遍历,选择TreeMap。
基于collection的大小,向HashMap中添加元素会更快,将map换为TreeMap进行有序key的遍历。
3.说一下HashSet的实现原理?
HashSet底层由HashMap实现。
HashSet的值存放于HashMap的key上。
HashMap的value统一为present。
4.数组和List之间的转换?
List转换为数组:调用ArrayList的toArray()方法。
数组转换为List:调用Arrays的asList()方法。
5.ArrayList和Vector的区别是什么?
Vector是同步的,而ArrayList不是。istI
ArrayList比Vector快,因为有同步,不会过载。
ArrayList更加通用,因为我们可以使用Collections工具类轻易地获取同步列表和只读列表。
6.Array数组和ArrayList有何区别?
Array可以容纳基本类型和对象,而ArrayList只能容纳对象。
Array是指定大小的,而ArrayList大小是固定的。
Array没有提供ArrayList那么多功能,比如addAll、removeAll和iterator等。
7.在Queue中poll()和remove()有什么区别?
poll()和remove()都是从队列中取出一个元素,但是poll()在获取元素失败的时候会返回空,但是remove()失败的时候会抛出异常。
8.哪些集合是线程安全的?
vector:就比arraylist多个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。
stack:堆栈类,先进后出。
hashtable:比hashmap多个线程安全。
enumeration:枚举,相当于迭代器。
9.Iterator和ListIterator有什么区别?
Iterator可以用来遍历Set和List集合,但是ListIterator只能用来遍历List。
Iterator对集合只能是前向遍历,ListIterator既可以前向也可以后向。
ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素,替换元素,获取前一个和后一个元素的索引等等。
本文来自博客园,作者:jsqup,转载请注明原文链接:https://www.cnblogs.com/jsqup/p/15886875.html