集合--10万随机数问题

2023-11-14

1.求十万个数据每个数据出现的次数

import java.util.ArrayList;
import java.util.Random;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
/**
 * 十万数据重复统计并打印
 * 1.10万数据存储
 * 2.数据统计
 * @author lmx
 *
 */
public class A {

	public static void main(String[] args) {
		ArrayList<Integer> x = new ArrayList<Integer>(100000);
		Random random = new Random();
        for(int i = 0;i < 100000;i++) {
            int val = random.nextInt(10);
            x.add(val);
        }
        //对集合进行遍历
        HashMap<Integer,Integer> y = new HashMap<Integer,Integer>();
        Iterator<Integer> z = x.iterator();
        while(z.hasNext()) {
        	Integer d = z.next();
        	if(!y.containsKey(d)) {
        		y.put(d, 0);
        	}
        	y.put(d,y.get(d)+1);
        }
        
        Iterator<Entry<Integer, Integer>> iterator = y.entrySet().iterator();
		while(iterator.hasNext()) {
			Entry<Integer, Integer> h = iterator.next();
			Integer key = h.getKey();
			Integer value = h.getValue();
			System.out.println(key+":"+value);
		}
	}
		
 }

2.十万个随机数求出里面重复次数最多的十个数

import java.util.*;

/**
 * @ClassName TestDemo12
 * @Description 十万个随机数求出里面重复次数最多的十个数
 * @Author lmx
 * @Date 2019/4/5 20:15
 * @Version 1.0
 **/
public class TestDemo12 {
    public static void main(String[] args) {
        fin_10_max();
    }

    private static void fin_10_max() {
        //把100000个数放进ArrayList类型的容器
        ArrayList<Integer> arrayList = new ArrayList<>();
        Random random = new Random();
        //随机插入十万个数据
        for(int i = 0;i < 100000;i++) {
            int val = random.nextInt(10000)+1;
            arrayList.add(val);
        }

        //重写比较器,目的是为了比较的hashmap中的value
        Comparator<Map.Entry<Integer,Integer>> comparator = new Comparator<Map.Entry<Integer, Integer>>() {
            @Override
            public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
                return o1.getValue()-o2.getValue();
            }
        };

        //创建一个优先级队列的对象。自定义构造函数,则比较器需要重写,大小设为10
        PriorityQueue<Map.Entry<Integer,Integer>> priorityQueue = new PriorityQueue<>(10,comparator);

        //创建一个hashmap对象,(需要记录数以及他的出现次数)
        HashMap<Integer,Integer> hashMap = new HashMap<>();
        //迭代器迭代arraylist,记录每个值出现的次数
        Iterator<Integer> iterator = arrayList.iterator();
        while(iterator.hasNext()) {
            Integer next = iterator.next();
            if(hashMap.containsKey(next)) {
                //记录数据
                hashMap.put(next,hashMap.get(next)+1);
            }else {
                //这个值第一次出现
                hashMap.put(next,1);
            }
        }

        //迭代器迭代hashmap
        Iterator<Map.Entry<Integer,Integer>> iterator1 = hashMap.entrySet().iterator();
        while (iterator1.hasNext()) {
            Map.Entry<Integer,Integer> next = iterator1.next();
            int value = next.getValue();  //得到每一次遍历时的value值
            //如果优先级队列里的数据长度小于10,就往进添加
            if(priorityQueue.size() < 10) {
                priorityQueue.add(next);
            }else {
                //如果数据超过10,比较队顶的元素和要进入的元素
                if(priorityQueue.peek().getValue() < value) {
                    //如果要进入的元素大于队顶的元素,就移除队顶本来的元素,加入新的元素
                    priorityQueue.remove();
                    priorityQueue.add(next);
                }
            }
        }

        //迭代器遍历优先级队列,得出结果
        Iterator<Map.Entry<Integer,Integer>> iterator2 = priorityQueue.iterator();
        System.out.println("数字 出现次数");
        while(iterator2.hasNext()) {
            Map.Entry<Integer,Integer> next = iterator2.next();
            int key = next.getKey();
            int value = next.getValue();
            System.out.println(key+"   "+value);
        }
    }
}

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

集合--10万随机数问题 的相关文章

随机推荐

  • 关于类,你真的掌握了吗?(详细代码解读以及详细图解)

    目录 一 类和对象 二 类和类的实例化 三 类的成员 四 封装 五 构造方法 六 代码块 今日良言 既然选择了远方 便只顾风雨兼程 一 类和对象 1 类 具有相同特性 属性 和行为的对象的抽象 类是一个模板 2 对象 对象是人们要进行研究的
  • 多元线性回归方差分析表理解

    1 单因素一元方差分析的方法和案例 例子 案例的代码 X 533 580 525 600 570 650 500 因数I A F 实验组 CK标准 565 600 500 615 575 661 510 525 575 510 590 56
  • 四个视角,讲透额温枪应用设计中的运放问题

    3 月 12 号 世界卫生组织宣布新冠肺炎为全球性流行病 抗疫正从中国的 人民战争 变成一场 世界大战 很多事情正在微妙和快速的变化 额温枪和口罩一样 成为抗疫以及复产复工必不可少的日常用品 额温枪成了市场上炙手可热的产品 很多厂家开始步入
  • Top n 开源物理仿真引擎

    物理仿真引擎可以做为强化学习用 也可以做游戏等 列举主要几个开源的 pybullet Webots 开源早的 用户也多 比如 pybullet提供Python API 学习曲线较平缓 Nvidia的isaac 新开源不久 GPU支持好 Mu
  • 微信能上但浏览器无法上网

    微信能上但浏览器无法上网 问题描述 微信能聊天传文件 但是浏览器一直显示 未链接到互联网 问题描述 网络诊断提示 远程计算机或设备将不接受链接 出现这类问题 一般都是电脑打开了SSR代理服务 关闭了代理服务基本上就可以恢复正常上网了 解决方
  • Unity的C#编程教程_47_函数和方法

    C Functions and Methods Overview 1 Functions vs Methods 函数和方法其实就是一个东西 在 C 中通常称之为方法 方法 就是一块打包的代码 比如我们最常见的 就是在 Unity 中初始化
  • Mac git 命令自动提示

    1 首先安装配置Homebrew 注 如果已经安装过就跳过 在终端输入如下命令 usr bin ruby e curl fsSL https raw githubusercontent com Homebrew install master
  • 【GitLab】docker部署个人代码私服(开源gitlab)

    文章目录 前期准备 安装部署 拉取Gitlab镜像文件 创建容器挂在卷轴目录 运行镜像 修改配置文件 重启容器 使用说明 初次登陆 更改语言模式 创建新用户 邮件转发服务 总结 前期准备 准备一台CentOS7 8 以上版本的服务器 标配2
  • 编程题目:求二叉树的叶子结点个数(涉及前中序遍历,建树,叶子节点个数)

    以二叉链表作为二叉树的存储结构 求二叉树的叶子结点个数 输入格式 输入二叉树的先序序列 提示 一棵二叉树的先序序列是一个字符串 若字符是 表示该二叉树是空树 否则该字符是相应结点的数据元素 输出格式 输出有两行 第一行是二叉树的中序遍历序列
  • 关注深度学习代码

  • 【DA 03】Exploring Categorical Regularization for Domain Adaptive Object Detection (CVPR 2020)

    摘要 解决目标检测的域自适应问题 其中主要是source和target域之间的巨大差异 前人的工作主要在对齐image level和Instance level shifts Bias 07 DA Faster RCNN 然而 他们忽略去了
  • NO.55——Face Swapping with Python,dlib,openCV(换脸)

    摘要 早前看过国外博主的一篇用200行代码实现图像换脸操作的文章 主要通过仿射变换和调色的方法 原理呢 晦涩难懂 具体效果呢 其实也并不是很理想 至少要比直接调用Face 的人脸融合接口要差很多 用于学习图像处理相关的知识还是不错的 下一篇
  • IoT Studio场景最佳实践——实践类

    1 使用IoT Studio快速构建可视化应用 在物联网业务场景中设备数据可视化应用是最普遍的需求 阿里云物联网应用开发 IoT Studio 提供了Web可视化开发 移动可视化开发 业务逻辑开发与物联网数据分析等一系列便捷的物联网开发工具
  • js版飞机大战

    div div
  • 用c语言对文件进行加密

    用C语言对文件进行简单加密的操作 这里主要用的加密思路是破坏文件头 使得系统无法识别文件从而进行加密 最初的思路是将用户输入的加密口令转成ASCII码 再与文件头数据循环进行异或操作 从而破坏文件头数据 使得系统无法识别文件 而从安全性上来
  • 最新!Photoshop 2022 (ps2022)中文

    Photoshop 2022拥有超强的图片编辑功能 对图片调整强度 饱和度 亮度 从照片编辑和合成到数字绘画 动画和图形设计 只要能想到 就能在Photoshop中创作出来 包括神经滤镜 天空更换以及增强的云文档等 可以让设计者的工作更加高
  • ORA-01502: 索引或这类索引的分区处于不可用状态

    一 问题描述 插入数据时 出现如下报错 ORA 01502 索引或这类索引的分区处于不可用状态 英文 ora 01502 index schema index name or partition of such index is in un
  • (五)unity shader基础之——————学习shader所需的数学基础:下篇(坐标空间:模型空间、世界空间、观察空间、裁剪空间、屏幕空间、法线变换等)

    一 坐标空间 上篇文章讲述了如何使用矩阵来表示基本的变换 如平移 旋转和缩放 在本节我们将关注如何使用这些变换来对坐标空间进行变换 渲染游戏的过程可以理解成是把一个个顶点经过层层处理最终转换为屏幕上的过程 本节我们就将学习这个转换过程是如何
  • Python类和对象编写一个小游戏【含注释】

    定义一个鱼类和龟类并编写游戏 假设游戏场景为范围 x y 为0 lt x lt 10 0 lt y lt 10 游戏生成1只乌龟和10条鱼 它们的移动方向均随机 乌龟的最大移动能力是2 Ta可以随机选择1还是2移动 鱼儿的最大移动能力是1
  • 集合--10万随机数问题

    1 求十万个数据每个数据出现的次数 import java util ArrayList import java util Random import java util HashMap import java util Iterator