list
list有三个:简单说明下
Arraylist:采用的数组,查询效率高,修改的效率低,线程不安全
Linkedlist:采用的是链表的形式,大概分为两种,一种是栈,先进后出,还有一种是队列,先进先出。查询效率低,修改效率高(通过修改链表节点),线程不安全
Vector:查询,修改效率低,线程安全
三个list都是通过添加顺序确定顺序的
set:
set说两个主要的:
hashset;
通过哈希表确定顺序,然后用hashcode进行哈希值比较,相同则进一步用equels方法进行比较,然后去重复
桶排序,查询速度快,线程不安全
treeset:
通过comparato()方法来排序,通过判断大小,相同则去重复
存取速度快,红黑树判断位置,自然排序
map:(k,y)
判断键是否相等,去重复时,键是旧键,值是新值
说两个:
hashset;键,值都可以是null
通过哈希表确定顺序,然后用hashcode进行哈希值比较,相同则进一步用equels方法进行比较,然后去重复
存取速度快,线程不安全
treemap;键不能是null
通过comparato()方法来排序,通过判断大小,相同则去重复
红黑树判断位置,自然排序
hashtable;
线程不安全,查询修改效率低
三者区别;
list没有排序,而set和map会根据子类特有的方法排序。list可以有重复元素,set和map没有重复元素(去重复也是根据子类情况而定)。