1.Java的容器都有哪些?
主要分为Collect和Map容器。
其中Collect容器又细分为:Set、List、HashSet、TreeSet、LinkedHashSet、ArrayList、LinkedList、Verctor。
Map容器分为:HashMap、HashTable、TreeMap、LinkedHashMap。
2.Collection和Collections有什么区别?
java.util.Collection是一个集合接口,提供了对集合对象的通用操作方法。List、Set、Queue都实现自Collection。
java.util.Collections是一个包装工具类,提供了有关集合的静态方法。例如搜索、排序等。
3.List、Set、Map之间的区别是什么?
List、Set都继承自Collection接口。Map是与Collection同级的接口。
List:元素可重复,插入有序。
Set:元素不可重复,插入无需。
Map:采用K:V方式存储数据,其中K唯一。
4.HashMap和HashTable有什么区别?
HashMap和HashTable都实现了Map接口。
HashMap:KV都允许出现null值(可以出K:null、null:V、null:null的情况),HashMap是线程不安全的。
HashTable:KV都不允许出现null值,HashTable是线程安全的。
如果需要线程安全的业务场景,目前推荐的是ConcurrentHashMap,而非HashTable。
5.如何决定使用HashMap还是TreeMap?
HashMap的key由hashCode()实现,数据结构由链表、红黑树组成,key是无序的。
TreeMap的key要求实现Compareble,数据结构由红黑树组成,key是字典序或者自定义序。
如果需求结果有序,则使用TreeMap,否则使用HashMap。
6.说一下HashMap的实现原理?
7.说一下HashSet的实现原理?
8.ArrayList和LinkedList的区别?
9.如何实现数组和List之间的转换?
数组转换List:arrays.asliat(arr)。
List转换数组:list.toArray()。
10.ArrayList和Vector的区别是什么?
11.Array和ArrayList有何区别?
12.在Queue中,poll()和remove()有什么区别?
13.哪些集合类是线程安全的?
14.迭代器Iterator是什么?
15.Iterator怎么使用?有何特点?
16.Iterator何ListIterator有什么区别?
17.怎么确保一个集合不能被修改?
网友评论