千锋教育Java入门全套视频教程(java核心技术,适合java零基础,Java

集合的分类集合家族可分为collection和map
实现collection家族主要包含list列表和set集合,他们继承父类conllection,同时也是很多常用容器的父类;
list特点:单例元素集合、列表允许重复的元素、用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素。
set特点:不包含重复的元素、 没有带索引的方法不能用普通的for循环遍历。使用foreach方法进行遍历。
map特点:双列的集合,其中用put方法添加,定义put(key,value)每次存储时要存储一对key/value,不能存储相同的key,这个重复规则也是按照equals比较相等。
综上list以特定次序存储持有元素,可有重复元素,Set无法拥有重复元素,内部排序;map保持key-value值value可多值
ArrayList与Vector,LinkList继承list,其中ArrayList与Vector底层是数组,linklist底层是双向链表,ArrayList和LinkList都是线程不安全的,而vector是线程安全的,使用了synchronized锁。
ArrayList:在集合末尾添加删除元素所消耗的时间是一样的,但是在集合中间添加删除所用时间就会大大增加,但是根据索引查询的时候,速度就会很快。
LinkList:在集合任意地方添加删除元素时花费时间都是一样的,但是根据索引查询的时间就会多一些。
hashset与treeset继承至set存储特点是有序不可重复,hashsat底层是hashmap,hashmap底层是hash表,treeset底层是treemap。
hashmap与hashtable都属于map,但是hashmap继承至abstractMap,hashmap底层是hash表,hashmap是线程不安全,hashtable是线程安全的,hashmap是以2倍大小扩容,hashtable以二倍加一大小扩容;hashmap可以存在null值null键,hashtable不行,hashtable建初始值是11,hashmap键初始值是16。