zoukankan      html  css  js  c++  java
  • javase集合(list、set、map、Arraylist与linkedList、HashMap与HashTable、HashTable与ConcurrentHashMap)

    1、java中的集合

    (1)单列集合(collection):

    List集合:存取有序,有索引,元素可以重复

    Set集合:存取无序,没有索引,元素不可以重复(根据equals和hashCode判断),也就是说如果一个对象要存储在Set中,必须重写equals和hashCode方法。

    (2)双列集合(Map):

     2、Arraylist与linkedList的区别

    (1)特点:

             Arraylist底层使用的是数组:具有索引,查询快,增删慢,数组在内存中是一块连续的内存,插入或删除需要移动大量的元素

             LinkedList底层使用的是链表:当前元素分为数据域和指针域,指针域存放下一个或上一个元素的地址,查询时从头部开始,一个一个地找,查询效率较低。插入时不需要移动内存中的元素,只需要改变引用的指向即可,所以插入或删除的效率高。

    (2)使用场景:

    ArrayList:使用在查询比较多,插入删除较少的情况

    LinkedList:使用在查询比较少,插入和删除比较多的情况

    3、HashMap与HashTable的区别和联系

    (1)相同点:

    都可以用来存储key_value的数据

    (2)不同点:

    HashMap可以把null作为key或者value,而HashTable不可以

    HashMap线程不安全,效率较高,HashTable线程安全,效率较低

    4、HashTable与ConcurrentHashMap的区别和联系

    使用分段,相当于把一个hashmap分成多个段,每一段分配一把锁,这样就可以支持多线程访问,所以,多线程的情况下效率较高。

  • 相关阅读:
    (二分)进击的奶牛
    (二分)木材加工
    (简单并查集)The Suspects
    (递归)集合划分
    (简单并查集)How many tables?
    Wireless Network(并查集)
    (并查集)连通块中点的数量
    2019.04.08 电商17 购物车模型
    2019.04.08 电商 16 地址管理2
    2019.04.07 电商15 地址管理
  • 原文地址:https://www.cnblogs.com/zhai1997/p/12450896.html
Copyright © 2011-2022 走看看