java获取集合里重复出现的元素及其出现次数

2023-11-14

1.代码如下:

package com.qingfeng.ArrayList;

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

/**
 * @author:wfj
 * @since: 2020/6/11
 */
public class getSameElement {
    public static void main(String[] args) {
        //获取list集合里出现的重复元素及出现次数
        //1.结合HashMap来实现,key保存值,value保存这个值出现的次数
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("apple");
        list.add("egg");
        list.add("bamboo");
        list.add("bamboo");
        list.add("bamboo");
        list.add("tomato");

        Map<String,Integer> map = new HashMap<>();
        for (String item : list) {
            //定义一个计数器,记录当前元素出现的次数
            Integer count = 1;
            //如果当前元素在map容器中已存在,计数器+1
            if (map.get(item)!=null) {
                count = map.get(item) + 1;
            }
            //往map容器里存数据
            map.put(item,count);
        }

        for (String key : map.keySet()) {
            System.out.println("元素"+key+"出现的次数为"+map.get(key));
        }


       System.out.println("======================");

        //2.运用for循环,筛选出重复的元素,并且往新的集合里面加,新的集合可能还会出现重复的元素
        List<String> sames = new ArrayList<>();
        for (int i = 0; i <list.size()-1; i++) {
            for (int j = i+1 ; j < list.size();j++) {
                if (list.get(i).equals(list.get(j))) {
                    sames.add(list.get(i));
                }
            }
        }
        //去重
        List<String> sames2 = sames.stream().distinct().collect(Collectors.toList());
        //筛选原来集合里只出现一次的元素
        List<String> ones = list.stream().filter(item -> !sames2.contains(item)).collect(Collectors.toList());
        ones.stream().forEach(item -> {
            System.out.println("元素"+item+"出现的次数为1");
        });
        System.out.println("======================");
        //筛选原来集合里重复出现的元素以及出现的次数
        sames2.stream().forEach(item -> {
            List<String> list1 = list.stream().filter(entity -> entity == item).collect(Collectors.toList());
            System.out.println("元素"+item+"出现的次数为"+list1.size());
        });
    }
}

2.运行结果。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java获取集合里重复出现的元素及其出现次数 的相关文章

  • 有没有办法在 java 桌面应用程序上体验 Windows 8 Metro 的外观和感觉?

    正如标题中所述 我真的很难找到这个问题的好答案 我目前正在开发一个仅桌面应用程序 根本没有 CSS 或任何互联网部分 我希望它看起来像 Windows 8 的 Metro 外观 我不是在谈论布局 而是在谈论外观和感觉 我特别喜欢方形而不是圆
  • 在 Eclipse 中隐藏重复的工具栏项

    我不知道如何 但我的 STS 有重复的工具栏项目 我不知道如何删除它们 这是我复制的工具栏的样子 我想摆脱这些 我试图隐藏工具栏 但这没有帮助 有人知道如何删除重复的吗 自从升级到 Oxygen 以来 我一直遇到同样的问题 我无法可靠地重现
  • Android 中的 java.util.Observable 是线程安全的吗?

    Android 中的 java util Observable 是线程安全的吗 这文档 http developer android com reference java util Observable html说只有deleteObser
  • Android CursorAdapter、ListView 和后台线程

    我一直在开发的这个应用程序有包含数兆字节数据的数据库可供筛选 许多活动只是列表视图 通过数据库中的各个级别的数据下降 直到到达 文档 即从数据库中提取并显示在手机上的 HTML 我遇到的问题是 其中一些活动需要能够通过捕获击键并重新运行带有
  • 我应该使用 JDBC getNString() 而不是 getString() 吗?

    我们正在构建一个由 Oracle 数据库支持的 Java 应用程序 我们使用 JDBC 驱动程序 访问该数据库ojdbc6 jar and orai18n jar 数据库模式主要使用以下方式存储文本列NVARCHAR2数据类型 The JD
  • 如何添加 Java 正则表达式实现中缺少的功能?

    我是 Java 新手 作为一名 Net 开发人员 我非常习惯Regex Net 中的类 Java 实现Regex 正则表达式 还不错 但它缺少一些关键功能 我想为 Java 创建自己的帮助器类 但我想也许已经有一个可用的了 那么 是否有任何
  • 想要从java中的char数组创建字符流

    我想从 char 数组构造一个流以使用 java 8 功能 例如过滤器和映射 char list a c e Stream
  • Java时间转正常格式

    我有 Java 时间1380822000000 我想转换为我可以阅读的内容 import java util Date object Ws1 val a new Date 1380822000000 toString 导致异常 warnin
  • java数学中的组合“N选择R”?

    java库中是否有内置方法可以为任何N R计算 N选择R 公式 实际上很容易计算N choose K甚至不需要计算阶乘 我们知道 公式为 N choose K is N N K K 因此 公式为 N choose K 1 is N N N
  • 如何将测试类打包到jar中而不运行它们?

    我正在努力将我的测试类包含到 jar 包中 但不运行它们 经过一番谷歌搜索后 我尝试过mvn package DskipTests 但我的测试类根本没有添加到 jar 中 有任何想法吗 如果您遵循 Maven 约定 那么您的测试类位于src
  • 按名称获取 ArrayList

    这是正确的获取方式吗ArrayList
  • 单元测试、集成测试还是设计中的问题?

    我编写了我的第一个单元测试 我认为它过于依赖其他模块 我不确定是否是因为 这是一个复杂的测试 我实际上已经编写了集成测试或 我的设计有问题 我首先要说的是 虽然我有大约 4 年的开发经验 但我从未学过 也没有人教过自动化测试 我刚刚使用 H
  • 如何从 Trie 中检索给定长度的随机单词

    我有一个简单的 Trie 用来存储大约 80k 长度为 2 15 的单词 它非常适合检查字符串是否是单词 但是 现在我需要一种获取给定长度的随机单词的方法 换句话说 我需要 getRandomWord 5 来返回 5 个字母的单词 所有 5
  • Java 中通用方法参数的 getClass()

    以下 Java 方法无法编译
  • SDK尚未初始化,请务必先调用FacebookSdk.sdkInitialize()

    我在实现 Facebook SDK 时遇到此错误 并且我tried https stackoverflow com questions 15490399 error inflating class com facebook widget l
  • 在片段之间切换时底部导航栏会向下推

    在我的活动中 我有一个底部导航栏和框架布局来显示片段 一切正常 但问题是当我开始按顺序从 1 4 移动时 底部导航栏保持在其位置 但当我突然从 4 跳到2 然后底部导航栏就会超出屏幕 当再次单击同一项目时 它就会回到正常位置 该视频将清楚地
  • Java给定长度的随机数

    我需要在 Java 中生成一个恰好 6 位数字的随机数 我知道我可以在随机发生器上循环 6 次 但是在标准 Java SE 中还有其他方法可以做到这一点吗 要生成 6 位数字 Use Random http download oracle
  • while循环只执行一次

    我很难弄清楚为什么 while 循环实际上不会循环 它运行一次并停止 import java util public class mileskm public static void main String args Scanner inp
  • Swing:创建可拖动组件...?

    我在网上搜索了可拖动 Swing 组件的示例 但我发现示例不完整或不起作用 我需要的是一个摇摆组件那可以是dragged通过鼠标 在另一个组件内 被拖拽的时候 应该已经 改变它的位置 而不仅仅是 跳 到目的地 我很欣赏无需非标准 API 即
  • 在 for 循环比较中使用集合大小

    Java 中 Collections 的 size 方法是否有编译器优化 考虑以下代码 for int i 0 i

随机推荐

  • 从ubuntu18 升级到ubuntu20 墙倒屋塌,重新开始

    升级到20 发现了各种不便 最主要是我的机器就是这个运行水平 不能再往上跟了 运行慢将不可容忍 启动慢 不可容忍 点击icon 有几秒种不响应期 难以容忍 与vmware虚拟机15不能很好兼容 并进一步不能与win7兼容 win7我认为是最
  • 基于线性回归对神经网络的解释以及梯度下降鞍点与局部最优的产生原理

    首先 机器学习的本质是让计算机找到一个函数来解决问题 这种函数非常复杂以至于人类无法直接手写出来 本文参考李宏毅教授视频ML 2021 Spring 神经网络是解决线性不可分问题 你可以引入多条线来分割当然我们也可以引入激活函数 非线性函数
  • 计算机视觉小项目—基于RGB颜色特征的火焰识别

    提出问题 随着计算机视觉及图像处理技术的发展 基于计算机视觉的火焰检测技术逐渐取代了传统的火灾检测 由于火焰最显著静态特质是其颜色 火焰识别算法主要利用视频图像中颜色与亮度的相关信息 所以对火焰颜色的特征提取是火焰识别过程的关键 在有关火焰
  • Spring Cloud Ribbon无法将服务名转换为地址

    试了许多网上说的 都不管用 后来发现是spring cloud starter eureka依赖项的版本问题 将版本降低后正常运行
  • fileclude(文件包含漏洞及php://input、php://filter的使用)

    先介绍一些知识 1 文件包含漏洞 和SQL注入等攻击方式一样 文件包含漏洞也是一种注入型漏洞 其本质就是输入一段用户能够控制的脚本或者代码 并让服务端执行 什么叫包含呢 以PHP为例 我们常常把可重复使用的函数写入到单个文件中 在使用该函数
  • Shell编程学习(一)简单介绍和执行shell脚本的方式

    Shell编程是什么 为什么要学习Shell 首先我们要知道 我们的Java项目一般都是部署到Linux系统上的 这是由于Linux相对于Windows而言呢有一下几点 开源 可以修改定制和再发布 安全性更高 虽然windows有很友好的可
  • [Spring学习]01 Spring简介

    目录 一 Spring介绍 二 Spring 官网介绍 三 Spring框架特征 四 Spring核心技术 一 Spring介绍 Spring是一个分层的轻量级开源J2EE框架 由Rod Johnson创建 Spring是一个开源容器框架
  • 【前端关于JSON.parse解析报错处理方案】

    项目场景 vue的移动端项目 ios 解析返回的json报错 JSON parse解析特殊字符报错的解决办法 问题描述 JSON parse 解析该字符串 则会出现报错 安卓可能并不会 原因分析 对于深度嵌套的JSON字符串 使用 JSON
  • 程序员网页版工具集合

    Overview 本文主要收集一下作为程序员经常会用到的一些小工具网站 crontab表达式 https tool lu crontab struct和json互转 https json2struct mervine net json转义工
  • 接口自动化实现图片上传(selenium/RF)

    最近做自动化碰到一个问题 就是带图片上传的不知道怎么实现自动化 整理了下实现如下 上传图片postman 结果请求如下 上传图片后返回一个图片地址 post请求 body 是form data 而不是json fiddler抓取如下 sel
  • 【数据结构】6.3 二叉搜索树(C++)

    数据结构 6 3 二叉搜索树 目录 一 二叉搜索树的概念 二 二叉搜索树的实现 1 存储结构和实现接口 2 方法的实现 2 1 默认成员函数 2 2 查找find 2 3 插入insert 2 4 删除erase 2 5 中序遍历 一 二叉
  • linux找不到root用户,Linux中root用户找不到JAVA_HOME

    使用DOS比较两个txt文件的差异 将两个文件放入到同一个文件夹下 DOS下提供了FC命令 点击开始 gt 运行 gt 输入cmd 进入DOS下 进入指定目录 输入FC a txt b txt进行比较 下面会显示出之间的差异 lbrack
  • 02.SVN 忽略不需要提交的文件

    我使用的是 TortoiseSVN 每次提交到 svn 上的时候我不想提交 idea 文件夹 不需要列出 服务器也不需要存 因为是编译器的文件 多人维护项目时 总会显示修改 最好的避免类似问题的方法是添加参考文件到该项目的忽略列表 这样就不
  • ApkScan-PKID查壳工具+脱壳(搬运)

    Android APK 查壳工具免费通道 链接 https pan baidu com s 1rDfsEvqQwhUmep1UBLUwSQ 密码 wefd看众多小伙伴需要脱壳工具 现在补上1 Zjdroid github https git
  • 计算机网络(谢希仁-第八版)第五章习题全解

    5 01 试说明运输层在协议栈中的地位和作用 运输层的通信和网络层的通信有什么重要的区别 为什么运输层是必不可少的 地位和作用 从通信和信息处理的角度看 运输层向它上面的应用层提供通信服务 它属于面向通信部分的最高层 同时也是用户功能的最低
  • 线程安全threadsafe的四种策略

    线程之间的 竞争条件 作用于同一个mutable数据上的多个线程 彼此之间存在对该数据的访问竞争并导致interleaving 导致post condition可能被违反 这是不安全的 线程安全 ADT或方法在多线程中要执行正确 一 Con
  • MyBatis Log 插件无法显示SQL语句的原因

    MyBatis Log是IDEA一款下载量非常高的插件 该插件可以对控制台打印的日志进行解析 然后将对应的SQL语句整理并拼接好对应的参数 非常方便 有时插件却无法打印SQL 总的来说 有如下三种原因 1 项目的日志等级过高 修改日志等级为
  • mysql的jdbc的url

    driver com mysql jdbc Driver url jdbc mysql localhost 3306 数据库名 useSSL true useUnicode true characterEncoding utf8 usern
  • 交互设计师

    岗位职责 对产品进行行为设计和界面设计 行为设计是指各种用户操作后的效果设计 Web的操作以点击为主 点击操作又可以分为 表单提交 类和 跳转链接 类两种 除点击外 还涉及到拖拽操作等 界面设计包括 页面布局 内容展示等众多界面展现 例如
  • java获取集合里重复出现的元素及其出现次数

    1 代码如下 package com qingfeng ArrayList import java util import java util stream Collectors author wfj since 2020 6 11 pub