• 常用集合


    集合

    一、List/Set/Map 区别

    ·list和Set是存储单列数据的集合,而Map是存储键值对。
    ·list存储的数据是有序的,且可以重复。set存储数据是无序的,不可重复。Map存储的键不可重复,但值可以重复。

    二、集合

    1、List

       a.实现类

        ArrayList、LinkedList、voctor

      b.区别
        ArrayList   底层为数组,查询时根据数组下标去找到对应的数据,但增删时,效率低。
        LinkedList  底层是链表,查询时要通过一个个节点去查找,增删时,效率高,只要断开对应的节点,插入或删除就行
        Voctor    底层是数组,线程安全,增删慢,查询慢。

        c.补充

        ArrayList 内部是以数组形式来保存集合中的元素,因此随机访问时性能较好。

          LinkedList 内部是以链表形式来保存集合中的元素,因此随机访问时性能较差,但是插入、删除元素是性能比较出色(只需要改变指针的指向)

    2、Map

      a.实现类

        HashMap、LinkedHashMap、HashTable

      b.区别
        HashMap 非线程安全,但效率高,允许null
        key的值是唯一的,允许value为null。 利用这种特性,可以很容易做到去重的效果

        代码有些地方不用理会什么意思,只要知道大体上能用这个特性来方便查到到重复的数据。

    int index = 0;
    for (int i = 0; i < rows.length; i++) {
        String[] arr = StringUtils.splitByWholeSeparatorPreserveAllTokens(      //这里不用理会是什么意思
    					rows[i], "	");
        bagNoMap.put(arr[0], null);    //这里的arr[0]是bagNo
        index++;
        if (bagNoMap.size() != index) {
    	    returnBuffer.append("<br/> No.").append(i + 1)
    	   .append(" row,save fail!<br/> Reason of failure:")
    	    .append("Uploaded bag number is duplicated!");
    	    error.setMsg(error.getMsg() + returnBuffer.toString());
    	    index--; // 判断下一次重复
    	    continue;
        }
    } 

        HashTable 线程安全,效率低,不允许Null
        linkedHashMap为HashMap的子类,保存着插入的顺序

    3、Set

      a.实现类

        HashSet、LinkedHashSet

      b.区别

        HashSet 底层是hashMap,不允许重复值
        LinkedHsahSet 接口LinkedHashMap,底层是LinkedHashMap

    三、后记

      1、详细的这里就不多说了

      2、转发请注明源地址

  • 相关阅读:
    CSS 处理table表格长度溢出问题 解决table导致的横向滚动条问题
    NodeRED中解析高德地图天气api的json数据显示天气仪表盘
    【20220325】连岳摘抄
    【20220324】好过、坏过,还是要过
    使用格拉姆角场(GAF)以将时间序列数据转换为图像
    LSTM 已死,事实真是这样吗?
    TensorFlow和Pytorch中的音频增强
    论文回顾:Batch Augmentation,在批次中进行数据扩充可以减少训练时间并提高泛化能力
    特征工程:基于梯度提升的模型的特征编码效果测试
    Linux中常用Shell命令
  • 原文地址:https://www.cnblogs.com/lrj1009IRET/p/9248716.html
Copyright © 2020-2023  润新知