小工具知识网

当前位置: 首页 > 行业知识 > Map中的computeIfAbsent()和computeIfPresent()---java 8新特性

行业知识

Map中的computeIfAbsent()和computeIfPresent()---java 8新特性

2026-10-25 09:39:34 来源:互联网转载

/**

  • 给表中添加数据

  • @param object 数据

    */

    protected void fillData(String type,Object object){

    JSONArray jsonArr = changeObjetToJsonArray(object);

    if(jsonArr==null || jsonArr.isEmpty()){

    return;

    }

    //遍历jsonarray

    GetDateByTableName getDateByTableName=new GetDateByTableName(testNumber,imsi);

    for(int i=0;i

    pString typeName=BaseDataPreHandle.typeNamePreHandle(type, jsonItem);/p pTypeForTableName typeForTableName=Enum.valueOf(TypeForTableName.class,typeName.toUpperCase());/p pString tableName=typeForTableName.getTableName();/p p/**mapTableColumns.computeIfAbsent(tableName,k -> getFieldByTableName(tableName));*/

    if(mapTableColumns.get(tableName)==null){

    mapTableColumns.put(tableName,getFieldByTableName(tableName));

    }

    String[] row= getDateByTableName.getDatasbyName(tableName,jsonItem,mapTableColumns.get(tableName));

    if(mapTableValues.get(tableName)!=null){

    rowList=mapTableValues.get(tableName);

    }

    rowList.add(row);

    mapTableValues.put(tableName,rowList);

    }

    }

    }

    然后我写完用sonarLint 检测发现两个异味,竟然提示我不要这么写,而是提示使用Map.computeIfAbsent()方法,当时很纳闷

    使用了lambda表达式,然后我就看了一下computeIfAbsent()源码,如下

    default V computeIfAbsent(K key,

    Function

上一篇:织梦网站缓存设置指南,优化性能,轻松提升网站速度!

下一篇:揭秘鼠标精灵神秘源码,探索独特功能,让你一探究竟!