集合篇
一.集合中的使用泛型的优点?
- jdk1.5引入了泛型;
- 泛型解决了黄色警告线的问题;
- 避免了强制类型转换;
- 优化了代码格式
二.Java集合中的基础接口?
- Collection为集合层级的根接口。一个集合代表一组对象,这些对象即为它的元素。Java平台不提供这个接口任何直接的实现。
- Set是一个不能包含重复元素的集合。这个接口对数学集合抽象进行建模,被用来代表集合,就如一副牌。
- List是一个有序集合,可以包含重复元素。你可以通过它的索引来访问任何元素。List更像长度动态变换的数组。
- Map是一个将key映射到value的对象.一个Map不能包含重复的key:每个key最多只能映射一个value。
- 一些其它的接口有Queue、Dequeue、SortedSet、SortedMap和ListIterator。
三.为何Map接口不继承Collection接口?
- 容器内每个位置所存储的元素个数不同;
- Collection类型存储的是一个元素;
- Map类型存储的是简直对的方式
四.Iteratot是什么?
- Iterator 接口提供遍历任何Collection集合接口
- 迭代器允许调用者在迭代过程中移除元素
五.Iterator 和listIterator的区别?
- Iterator可以遍历set和list集合,而LIstIterator只能遍历list集合
- Iterator 只能向前遍历而listIterator可以双向遍历
- Listterator从Iterator接口继承,也存在新的方法,比如添加,替换元素
六.HashMap如何工作?
- HashMap在静态内部类中存储键值对,HashMap在put和get方法中使用了hash cold()和equals()方法。
七.Hashmap和HashTable有什么区别?
- HashMap允许key和value为null,而hash table不可以为null;
- hash table是同步的线程安全的,而hash map不是,所以hash table适合在多线程中使用,而hash map再多线程中
八.如何决定选取treemap还是hashmap?
- 对于map中的插入,定位,删除首选是hashmap;
- 如果对一个集合进行有序的遍历,选用treemap;
九.ArrayList和Vactor的区别?
- 两者都是基于索引的,内部又一个数组支持;
- 两者都是允许存入null值,有索引进行随机查询
- Vactor是同步的,线程安全的,所以速度会比较慢
十.ArrayList和LinkedList的区别?
- 首先他们都是实现了List接口
- ArrayList集合底层基于索引,由一个数组支持所以查询速度较快
- LinkedList底层是链表结构,每一个节点和上下节点链接,所以插入,修改,删除比较快
十一.Collcations是什么?
- 是Java.util.Collcation是一个工具类,仅包含静态方法;
- 提供一些便捷的方法,如折半查找,排序,逆序等;