首页 > 其他分享 >map.merge() 方法

map.merge() 方法

时间:2022-09-22 15:45:20浏览次数:48  
标签:size map merge import new Clothes 方法 Size

 

package utils;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

@Slf4j
public class Test extends Person {

    public static void main(String[] args) {
        List<Clothes> clothes = Arrays.asList(
                new Clothes("C001", Size.SMALL),
                new Clothes("C002", Size.LARGE),
                new Clothes("C003", Size.LARGE),
                new Clothes("C004", Size.MEDIUM),
                new Clothes("C005", Size.SMALL),
                new Clothes("C006", Size.SMALL));
        System.out.println(countBySize(clothes));
    }

    public static Map<Size, Integer> countBySize(List<Clothes> clothes) {
        Map<Size, Integer> map = new EnumMap<>(Size.class);
        for (Clothes c : clothes) {
            Size size = c.getSize();
            /*Integer count = map.get(size);
            if (count != null) {
                map.put(size, count + 1);
            } else {
                map.put(size, 1);
            }*/
            map.merge(size, 1, Integer::sum);
        }
        return map;
    }

}

enum Size {
    SMALL, MEDIUM, LARGE
}

@Data
@AllArgsConstructor
class Clothes {
    String id;
    Size size;
}

  

            Integer count = map.get(size);
            if (count != null) {
                map.put(size, count + 1);
            } else {
                map.put(size, 1);
            }    可以

可以替换为

map.merge(size, 1, Integer::sum);

该方法接收三个参数,一个 key 值,一个 value,一个 remappingFunction ,如果给定的key不存在,它就变成了 put(key, value) 。

但是,如果 key 已经存在一些值,remappingFunction 可以选择合并的方式,然后将合并得到的 newValue 赋值给原先的 key。

 

标签:size,map,merge,import,new,Clothes,方法,Size
From: https://www.cnblogs.com/ooo0/p/16719537.html

相关文章

  • web应用程序测试方法和测试技术详述
    测试方法说明:测试方法的选择取决你的测试策略。   一般的web测试和以往的应用程序的测试的侧重点不完全相同,基本包括以下几个方面。    当然圆满的完成测试还要有......
  • 嵌入式Web视频点播系统实现方法
    近年来,视频点播VOD(VideoonDemand)的名字在媒体上出现得越来越多。VOD技术使人们可以根据自己的兴趣,不用借助录像机、影碟机、有线电视而在电脑或电视上自由地点播节目库中......
  • JAVA方法
    结构化编程:把一个大模块分成小模块,再把小模块分成更细的小模块,一个模块对应于一个单元。Modules(模块):将一个复杂的系统划分为子模块,便于设计、实现和维护;Java中的程序模......
  • 方法引用-通过this引用本类的成员方法和类的构造器(构造方法)引用
    方法引用-通过this引用本类的成员方法Richable接口@FunctionalInterfacepublicinterfaceRichable{//定义一个想买什么就买什么的方法voidbuy();} ......
  • QC9.0兼容IE8.0的解决方法
    QC9.0默认支持IE6,不支持IE7和IE8的,一打开IE7和IE8的浏览器,输入qc网址,会出现提示:“MicrosoftInternetExplorer:4.0(compatible;MSIE8.0;WindowsNT5.2;Tride......
  • java中String的常用方法
    1、length()字符串的长度例:charchars[]={'a','b'.'c'};Strings=newString(chars);intlen=s.length();2、charAt()截取一个字符例:charch......
  • 小波分析找周期的方法应用到一个QPO上
    小波分析找周期的方法应用到一个QPO上 arXiv:2209.10408 [pdf, other]WaveletanalysisofthetransientQPOsinMAXIJ1535−571withInsight-HXMTX.Chen, W.Wan......
  • 网站测试方法及测试点
    1 功能测试对于网站的测试而言,每一个独立的功能模块需要单独的测试用例的设计导出,主要依据为《需求规格说明书》及《详细设计说明书》,对于应用程序模块需要设计者提......
  • 数组常用方法总结
    判断数组中是否存在某个值vararrData=['html','css','javascript'];varvalue='css';console.log(arrData.includes(value));console.log(arrData.some(ite......
  • VS2012使用nuget时提示”基础连接已关闭“基础连接已经关闭: 未能为 SSL/TLS 安全通道
    上手运维着几个老系统,需要使用VS2012,最近使用NUGET的时候,总是提示“基础连接已经关闭:未能为SSL/TLS安全通道建立信任关系”,网上找了好久,基本上都是说修改注册表就可以,......