Java中计算集合中元素的出现次数统计

 更新时间:2024年02月28日 09:04:58   作者:程序媛小刘  
本文主要介绍了Java中计算集合中元素的出现次数统计,使用Collections类配合HashMap来统计和java lamb 计算这两种方式,具有一定的参考价值,感兴趣可以了解一下

使用Collections类来计算集合中元素的出现次数

在Java中,你可以使用Collections类配合HashMap来统计集合中元素的出现次数。以下是一个示例:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("apple", "banana", "apple", "orange", "banana", "banana");

        // 使用LinkedHashMap以保持插入顺序
        Map<String, Integer> countMap = new LinkedHashMap<>();

        // 遍历列表并统计每个元素的出现次数
        for (String item : list) {
            countMap.put(item, countMap.getOrDefault(item, 0) + 1);
        }

        // 打印结果
        for (Map.Entry<String, Integer> entry : countMap.entrySet()) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }
    }
}

在这个示例中,我们首先创建了一个包含重复元素的列表。然后,我们创建了一个LinkedHashMap来存储每个元素及其出现次数。我们使用getOrDefault方法获取当前元素的出现次数(如果元素尚未在映射中,则返回默认值0),然后将其加1。最后,我们遍历映射并打印每个元素及其出现次数。

注意,我们使用LinkedHashMap而不是普通的HashMap,是因为LinkedHashMap会保持插入顺序。如果你不关心元素的插入顺序,那么可以使用HashMap

java lamb 计算集合中元素的出现次数

在Java中,你可以使用Stream API和lambda表达式来更简洁地计算集合中元素的出现次数。这里是一个使用Java 8及以上版本的例子:

import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("apple", "banana", "apple", "orange", "banana", "banana");

        // 使用Stream API和lambda表达式来计算元素的出现次数
        Map<String, Long> countMap = list.stream()
                .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

        // 打印结果
        countMap.forEach((item, count) -> System.out.println(item + " : " + count));
    }
}

在这个例子中,我们首先创建了一个包含重复元素的列表。然后,我们使用stream()方法将列表转换成一个流,接着使用collect方法和Collectors.groupingBy来根据元素本身(Function.identity())进行分组,并使用Collectors.counting()来计算每个分组的元素数量。

Collectors.groupingBy返回的是一个Map<K, List<T>>,其中K是元素的类型,T也是元素的类型。然后,我们通过嵌套使用Collectors.counting()来将每个分组的列表转换为计数值。最终,我们得到一个Map<String, Long>,其中键是集合中的元素,值是它们在集合中出现的次数。

最后,我们使用forEach方法来遍历这个映射并打印每个元素及其出现次数。

这种方法比使用传统的for循环和HashMap更加简洁和易读。

到此这篇关于Java中计算集合中元素的出现次数统计的文章就介绍到这了,更多相关Java集合元素次数统计内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java使用Socket实现文件上传功能

    java使用Socket实现文件上传功能

    这篇文章主要为大家详细介绍了java使用Socket实现文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • java数组与以逗号分隔开的字符串的相互转换操作

    java数组与以逗号分隔开的字符串的相互转换操作

    这篇文章主要介绍了java数组与以逗号分隔开的字符串的相互转换操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Mybatis如何从数据库中获取数据存为List类型(存为model)

    Mybatis如何从数据库中获取数据存为List类型(存为model)

    这篇文章主要介绍了Mybatis如何从数据库中获取数据存为List类型(存为model),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Spring中@Scheduled和HttpClient的连环坑

    Spring中@Scheduled和HttpClient的连环坑

    这篇文章主要给大家介绍了关于Spring中@Scheduled和HttpClient的连环坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03
  • java 获取一组数据中的最大值和最小值

    java 获取一组数据中的最大值和最小值

    本文主要介绍了java 获取一组数据中的最大值和最小值的方法。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 通过实例解析JMM和Volatile底层原理

    通过实例解析JMM和Volatile底层原理

    这篇文章主要介绍了通过实例解析JMM和Volatile底层原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Spring请求路径带参数URL使用注解的写法说明

    Spring请求路径带参数URL使用注解的写法说明

    这篇文章主要介绍了Spring请求路径带参数URL使用注解的写法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • mybatis中批量更新多个字段的2种实现方法

    mybatis中批量更新多个字段的2种实现方法

    当我们使用mybatis的时候,可能经常会碰到一批数据的批量更新问题,因为如果一条数据一更新,那每一条数据就需要涉及到一次数据库的操作,本文主要介绍了mybatis中批量更新多个字段的2种实现方法,感兴趣的可以了解一下
    2023-09-09
  • 23种设计模式(2) java工厂模式

    23种设计模式(2) java工厂模式

    这篇文章主要为大家详细介绍了23种设计模式之java工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • java中利用栈实现字符串回文算法

    java中利用栈实现字符串回文算法

    给定一个由多个a和b组成的字符串数组,字符串中有一个特殊的字符X,位于字符串的正中间,例如(aaaabbbbXabaabbbb),如何判定该字符串是否回文
    2020-12-12

最新评论