本帖最后由 xuehuayous 于 2014-4-6 23:20 编辑
其实好多东西自己总结效果才最好,希望对你有帮助!
问题一、
Collection和Collections有什么关系?
Collection 和 Collections的区别:
Collections是个java.util下的类,是针对集合类的一个工具类,提供一系列静态方法,实现对集合的查找、排序、替换、线程安全化(将非同步的集合转换成同步的)等操作。
Collection是个java.util下的接口,它是各种集合结构的父接口,继承于它的接口主要有Set和List,提供了关于集合的一些操作,如插入、删除、判断一个元素是否其成员、遍历等。
问题二、
List和Set有什么异同点?
Collection
List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。
|--ArrayList:底层的数据结构是数组,线程不同步,ArrayList替代了Vector,查询元素的速度非常快。
|--LinkedList:底层的数据结构是链表,线程不同步,增删元素的速度非常快。
|--Vector:底层的数据结构就是数组,线程同步的,Vector无论查询和增删都巨慢。
Set:无序,不可重复元素。
|--HashSet:数据结构是哈希表,线程是非同步。保证元素唯一性的原理,判断元素的hashCode值是否相同,如果相同还会继续判断元素的equals方法,是否为ture。
|--TreeSet:可以对Set集合中的元素排序。
问题三、
Map有哪些常用类,各有什么特点?
Map
|--Hashtable:底层是哈希表数据结构,不可以存入null键null值,该集合是线程同步的,JDK1.0效率低
|--HashMap:底层是哈希表数据结构,允许使用null键null值,该集合是不同步的,JDK1.2效率高
|--TreeMap:底层是二叉树数据结构,线程不同步。可以给map中的剑进行排序
|