• java8-lambda-list中字符出现字数的统计


    @Test
    public void testStringCount(){


    List<String> moidList1 = new ArrayList<>();
    moidList1.add("1");
    moidList1.add("2");
    moidList1.add("2");
    moidList1.add("3");
    moidList1.add("3");
    moidList1.add("3");
    moidList1.add("4");
    moidList1.add("4");
    moidList1.add("4");
    moidList1.add("4");

    Map<String, Long> map1 = moidList1.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
    System.out.println("moid出现次数统计(moid=次数):" + map1);
    List<Map.Entry<String, Long>> list1 = new ArrayList<>(map1.entrySet());
    Collections.sort(list1, new Comparator<Map.Entry<String, Long>>()
    {
    @Override
    public int compare(Map.Entry<String, Long> o1, Map.Entry<String, Long> o2)
    {
    //按照value值,从小到大排序
    // return o1.getValue() - o2.getValue();

    //按照value值,从大到小排序
    // return o2.getValue() - o1.getValue();

    //按照value值,用compareTo()方法默认是从小到大排序
    return o2.getValue().compareTo(o1.getValue());
    }
    });

    for (Map.Entry s : list1)
    {

    System.out.println("出现次数最多的moid:" + s.getKey()+"--"+s.getValue());
    }

    }


    执行结果:

    moid出现次数统计(moid=次数):{1=1, 2=2, 3=3, 4=4}
    出现次数最多的moid:4--4
    出现次数最多的moid:3--3
    出现次数最多的moid:2--2
    出现次数最多的moid:1--1

    如果元素是int型,需要拿到出现次数最多的数字,则可以用下列方法(未测试,从其他地方拷贝的):

    int[] arr = {1, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5};
    // 过程1 Collectors.groupingBy代表是分类,按照本身Function.identity()进行分类,那相同数字就会放在一起,Collectors.counting是统计相同数字的个数
    Map<Integer, Long> map = IntStream.of(arr).boxed().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
    System.out.println("数字出现次数统计(数字=次数):" + map);
     
    // 过程2 max方法是根据比较器(按照map的value进行排序)找出最大值
    Optional<Integer> maxOptional = map.entrySet().stream().max(Comparator.comparing(Map.Entry::getValue)).map(Map.Entry::getKey);
    System.out.println("出现次数最多的数字:" + maxOptional.get());

  • 相关阅读:
    MongoDB 创建账户
    MongoDB高可用集群配置方案
    学习CEGUI亟待解决问题一:文本控件的格式问题
    第一讲
    ERP初阶(三):MRP基本原理
    ERP初阶(四):MRP基本构成
    学习CEGUI亟待解决问题二:消息事件传递机制问题
    Groovy处理null对象为空字符串
    silverlight与CSLA的快速应用05安装CslaExtension
    silverlight与CSLA的快速应用08客户端的CSLA代码
  • 原文地址:https://www.cnblogs.com/zaierzai/p/13366200.html
Copyright © 2020-2023  润新知