本周学习第九章以下是知识点总结:
Collection是集合接口
Set子接口:无序,不允许重复。
List子接口:有序,可以有重复元素。
区别:Collections是集合类
Set和List对比:
Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。
List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会 引起其他元素位置改变。
Set和List具体子类:
Set
HashSet:以哈希表的形式存放元素,插入删除速度很快。
List
ArrayList:动态数组
LinkedList:链表、队列、堆栈。
Array和java.util.Vector
Vector是动态数组。
l Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set。
l 所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collection,有一个 Collection参数的构造函数用于创建一个新的Collection,这个新的Collection与传入的Collectio。
l 有相同的元素。后一个构造函数允许用户复制一个Collection。
除了List之外,Set集合接口也经常使用,Set接口中存放的元素是无序的并且是不可重复的,因此被称为数据集;
l Set接口因为是无序的,所以没有提供像List一样的set方法来修改元素,查找,添加、删除。
l HashSet 类和 TreeSet 类
“集合框架”支持 Set 接口两种普通的实现:HashSet 和TreeSet。在更多情况下,您会使用 HashSet 存储重复自由的集合。考虑到效率,添加到 HashSet 的对象需要采用恰当分配散列码的方式来实现hashCode() 方法。从集合中以有序的方式抽取元素时,TreeSet 实现会有用处。添加到TreeSet 的元素必须是可排序的。
这周的学习让我再一次感觉到java语言的强大。