总结collection类

简介: 总结collection类


image.png

1.collection

collect为存储数据的集合类的顶级接口。所以不能实例化,只能实现collection,长度可变,集合为引用类型。

list和set是collection的实现类

2.list

list有序,可以重复,可以为空,实现类有ArrayList、LinkedList 和 Vector。

  1. linklist以链表的方式存储增删更快,线程不安全,效率高。
  2. arraylist以数组的方式存储,查询更快 ,效率高,线程不安全。
  3. vector线程安全,效率低,增长率为100%,数据量较大的数据

3.set

不可以重复,无序,treeset,hashset,linkhashset为set的实现类。

  1. hashset 数据结构是哈希表,按照hash值排序,不存在重复值,通过hashcode和equals判断。线程安全,存取快。
    元素的哈希值是通过元素的hashcode方法来获取的, HashSet首先判断两个元素的哈希值,如果哈希值一样,接着会比较equals方法 如果 equls结果为true ,HashSet就视为同一个元素。如果equals 为false就不是同一个元素。
    哈希值相同equals为false的元素是怎么存储呢,就是在同样的哈希值下顺延(可以认为哈希值相同的元素放在一个哈希桶中)。也就是哈希一样的存一列。
  2. treeset 可以自然排序。不可重复。
  3. LinkedHashSet 会保存插入的顺序

4.map

map是map的接口的实现类,为键值对的,包括hashmap,treemap,hashtable,linkedtreetable。

  1. hashmap 且键唯一,键 值 可为空,线程不同步。
  2. treeMap 可以对集合中的键进行排序
  3. LinkedHashMap 保存了记录的插入顺序
  4. hashtable key和value的值均不允许为null;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了Hashtale在写入时会比较慢。

5.遍历map

iterator it = map.entry rset.interator()
while(it.hasnext()){
entry k = it..next()
syso(k.getkey(),k.getvalue)
}

6.线程安全问题

linklist arraylist hashset linkhashset线程不安全
vector hashtable为线程安全
stringbuffer为线程不安全 stringbuild为线程安全

7.总结

  1. ArrayXxx:底层数据结构是数组,查询快,增删慢
  2. LinkedXxx:底层数据结构是链表,查询慢,增删快
  3. HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
  4. TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序


相关文章
|
6月前
|
Java
Collection接口详解
Collection接口详解
List集合的实现类
List集合的实现类
|
4月前
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
|
6月前
|
存储 Java BI
JavaSE&Collection集合
JavaSE&Collection集合
38 6
|
6月前
|
容器
Collection接口
Collection接口
|
6月前
|
存储 Java API
java集合Collection(List)和泛型
java集合Collection(List)和泛型
|
存储 算法 Java
Java Collection接口的子接口之Set接口及其Set接口的主要实现类HashSet,LinkedHashSet,TreeSet详解(一)
Java Collection接口的子接口之Set接口及其Set接口的主要实现类HashSet,LinkedHashSet,TreeSet详解
67 0
|
Java
Java Collection接口的子接口之Set接口及其Set接口的主要实现类HashSet,LinkedHashSet,TreeSet详解(二)
Java Collection接口的子接口之Set接口及其Set接口的主要实现类HashSet,LinkedHashSet,TreeSet详解
90 0
|
API
迭代器 Collection以及List接口
迭代器 Collection以及List接口
72 0
|
存储 Java
Java集合Collection类
数组在存储多个数据方面的缺点: 一旦初始化后,其长度就确定了 数组中提供的方法非常有限,对于添加、删除、插入数据等操作非常不便,同时效率不高。 获取数组中实际元素个数的需求,数组没有现成的属性或方法可用。 数组存储数据的特点:有序、可重复。对于无序、不可重复的需求不能满足。
78 0
下一篇
无影云桌面