Java集合框架 [interview question]2.0

集合类特性(几个常用类的区别)

ArrayList: 元素单个,效率高,多用于查询  Vector: 元素单个,线程安全,多用于查询  LinkedList: 元素单个,多用于插入和删除 HashMap: 元素成对,元素可为空  HashTable: 元素成对,线程安全,元素不可为空
WeakHashMap: 是一种改进的HashMap,它对key实行“弱引用”,如果一个key不再被外部所引用,那么该key可以被GC回收 

 Iterator与ListIterator有什么区别

1. Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List。 · 
2. Iterator只能正向遍历集合,适用于获取移除元素。ListIerator继承Iterator,可以双向列表的遍历,同样支持元素的修改。比如:增加元素,替换元素,获取前一个和后一个元素的索引,等等。 

 Collection 和 Collections的区别

Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作
List、Map、Set三个接口,存取元素时,各有什么特点
List  以特定次序来持有元素,可有重复元素;
Set  无法拥有重复元素,内部排序(无序);
Map 保存key-value值,value可多值。 

HashMap和Hashtable的区别 

都属于Map接口的类,实现了将惟一键映射到特定的值上。   
一.历史原因:
Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现  
二.同步性:
Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的  
三.值:
 HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。 
 Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。
四.效率:
Hashtable 比 HashMap 慢,因为它是同步的。
怎样使HashMap同步
HashMap可以通过Map m = Collections.synchronizedMap(hashMap)来达到同步的效果。

队列和栈是什么,列出它们的区别?
 

栈和队列两者都被用来预存储数据。java.util.Queue是一个接口,它的实现类在Java并发包中。队列允许先进先出(FIFO)检索元素,但并非总是这样。Deque接口允许从两端检索元素。

栈与队列很相似,但它允许对元素进行后进先出(LIFO)进行检索。

Stack是一个扩展自Vector的类,而Queue是一个接口。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值