工作日志4-16
1、collection和collections的区别
collection是集合类的一个顶级接口,其直接继承接口有list和set
collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。
2、List、Set、Map三大容器区别
List:有序可重复容器
Set:无序不可重复容器
Map:包含键值对,其中关键字是数值的唯一标识(不可重复),用户可以按关键字存取数据,数据可重复。
3、List接口主要的实现类包括ArrayList、LinkedList、Vector(很少用)
ArrayList:代表长度可变的数组、当我们需要对元素进行快速访问时使用。
LinkedList:链表数据结构,向List中插入和删除元素时由于速度较快而使用它,但是随机访问时速度慢。
4、了解ArrayList类中的方法
5、Set总结
1、HashSet和TreeSet是Set的两个典型实现。HashSet的性能总是比TreeSet好(特别是常用的添加、查询等操作),因为TreeSet需要额外的红黑树算法来维护集合元素的次序。只有当需要一个保存排序的Set时,才应该使用TreeSet,否则都应该使用HashSet。
2、LinkedHashSet是HashSet的子类,该集合也是根据元素hashCode值来决定元素存储位置,但它同时使用链表维护元素的次序,这样使得元素看起来是以插入的顺序保存的。LinkedHashSet需要维护元素的插入顺序,因此性能略低于HashSet的性能,但在迭代访问Set里的全部元素时将有很好的性能,又因为链表的存在,遍历LinkedHashSet会更快。
3、TreeSet是SortedSet接口的实现,TreeSet可以确保集合元素处于排序状态,TreeSet并不是根据元素的插入顺序进行排序,而是根据元素的实际值来进行排序的。
4、EnumSet是所有Set实现类中性能最好的,但它只能保存同一个枚举类的枚举值作为集合元素。
5、必须指出的是Set的三个实现类HashSet、TreeSet和EnumSet都是线程不安全的,如果有多条线程同时访问一个Set集合,并有超过一条线程修改了该Set集合,则必须手动保证该Set集合的同步性。通常可以通过Collections工具类的synchronizedSortedSet方法来包装该Set集合。此操作最好在创建时进行。
6、下午看javaScript:计划这几天着重看JavaScript。