JAVA随机生成十个不重复的整数(Arraylist,Set)

2023-10-29

随机生成十个不重复的整数有许多方法,这里我只写出两种。

第一种(Set):

先上代码:

import java.util.HashSet;
import java.util.Set;

public class Demo01 {
    public static void main(String[] args) {
        Set set = new HashSet();
        while (set.size()<10){
            int num  = (int)(Math.random()*20)-1;
            set.add(num);

        }
        System.out.println(set);
    }
}

在看解析:Set集合中不允许有重复的元素,当添加相同的元素时,因为Set集合的元素时唯一的,所以会覆盖之前的相同元素,set.size()方法能定义获取集合长度,也就能判断你所需要生成整数的个数。

第二种(ArrayList):

先看代码:

package Demo01;

import java.util.ArrayList;
import java.util.List;

public class Demo03 {
    public static void main(String[] args) {
        List list = new ArrayList();
        while (list.size()<10) {
          int  num = (int)(Math.random()*21)-1;
            if(!list.contains(num)){  //如果list集合里没有这个整数,则添加
                list.add(num);
            }
        }
        System.out.println(list);
    }
}

 实现List接口的集合类中的元素是有序的,且允许重复

 List集合中的元素都对应一个整数型的序号记载其在集合中的位置,可以根据序号存取集合中的匀元素。

因为List没有方法帮我们去移除重复的元素,所以,我们添加元素进集合的时候就需要判断它是否存在,所以利用contains方法判断集合里有没有这个元素。

随机生成一个数的方法介绍

第一种(Math.random):

Math.random生成的是一串小数,如果我们需要的是整数就要转换成整型。

public static void main(String[] args) {
        double i = Math.random();
        System.out.println(i);
        int i1 = (int)(i*11)-1;   //(i*11)-1表示生成0-10的一个整数
        System.out.println(i1);
    }

 Math是静态函数,所以我们可以直接调用它的方法。

第一种(Random):

1.Random(); 创建一个新的随机数生成器

2.Random(long seed); 使用单个 long 种子创建一个新随机数生成器

如果用相同的种子创建两个Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列

public static void main(String[] args) {
        Random random = new Random(); //Random不是静态类,故此需要创建一个对象来调用它的方法。
        for (int i = 0; i <20 ; i++) {
            int num = random.nextInt(10); //生成0-10却不包含十的整数。
            System.out.print(num);
            System.out.print("\t");
        }

Random需要创建对象来调用它的方法,它生成的是整数还是小数,由nextInt,nextDouble决定

由程序结果可以得知,我们java创造随机数时,随机数存在重复且为的情况,而且都没有边界值,故此我们需要根据程序的需求来改变随机数的生成范围和数量。

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

JAVA随机生成十个不重复的整数(Arraylist,Set) 的相关文章

随机推荐

  • for(auto i : v)遍历容器元素

    for auto i v 遍历容器元素 1 auto 2 auto 3 const auto 4 const auto C 11 新增了一种循环 基于范围 range based 的 for 循环 这简化了一种常见的循环任务 对数组 或容器
  • 计算机重新如何连接网络打印机,电脑怎样连接打印机,小编教你电脑如何连接网络打印机...

    打印机是办公室里经常会用到的一种办公设备 由于工作性质的不同 以及其他原因 网络打印机可以实现多台电脑连接 实现资源共享 网络打印机自带ip 只需指定ip就可以快速连接 那电脑如何连接网络打印机 下面 小编给大家讲解电脑连接网络打印机的技巧
  • 基于类帕累托贯序抽样算法求解单目标优化问题附matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab完整代码及仿真定制内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器
  • 智能合约平台开发指南

    随着区块链技术的普及 智能合约平台已经成为了这个领域的一个重要趋势 智能合约可以自动化执行合同条款 大大减少了执行和监督合同条款所需的成本和时间 那么 如何开发一个智能合约平台呢 以下是一些关键步骤 一 选择合适的区块链平台 智能合约通常运
  • pgsql数据库实现导入导出

    pgsql数据库实现导入导出 1 导出表 pg dump h 数据库ip U 用户名 数据库名 t 表名 gt 路径 例 pg dump h 127 0 0 1 U sysdba data center t book gt data boo
  • Prompt入门

    Prompt的范式大抵是两种 续写Prefix 用在GPT2 3那种单向LM预训练模型上 输入 好好学习 翻译成英文 输出 good good study 完形填空 用在BERT那种MLM式预训练模型上 比如情感分类任务可以输入 这个饼不错
  • Idea 中 Git 不提交当前分支修改代码并切换分支

    1 当前分支修改代码切换分支 日常开发中 我们可能会碰到我们正在修改当前 01 分支的代码 突然要去修改另外一个 02 分支的代码情况 而我们 01 分支写的代码还未经过测试 并不能马上提交 这个时候我们切换到 02 分支就会有问题 比如弹
  • dubbo中的Mock实现机制

    Mock是SOA之中的一个很有用的功能 不仅可以用来进行服务降级 也可以用来在测试中模拟服务调用的各种异常情况 dubbo框架里面的mock是在服务使用者这一端实现的 下面对实现机制进行分析 1 Mock的植入 很显然 既然提供了mock机
  • C++spdlog学习总结

    C Spdlog学习笔记 spdlog简介 spdlog优点 一般日志功能设计 spdlog安装 spdlog琐碎知识点总结 spdlog程序测试 一 日志输出控制台 1 数据全部输出到控制台 2 指定某个等级以上的数据到控制台 二 输出格
  • OC门与OD门

    OC门与OD门 OC Open Collector 集电极开路 OD Open Drain 漏极输出 集电极开路输出的结构如下图所示 右边的那个三极管集电极什么都不接 所以叫做集电极开路 左边的三极管为反相使用 使输入为 0 时 输出也为
  • 底层进阶

    在知乎上关注了好多图形学大佬 感觉现在知乎的技术氛围要比掘金推荐旧文好多了 经常会推送感兴趣的领域内容 而且还可以和作者私信交流 这段时间看到有大佬分享 GPU 架构相关的内容 做图像渲染的还是要懂 GPU 才行的 毕竟是和它打交道嘛 这位
  • springboot @CreatedDate @LastModifiedDate 自动生成创建时间,修改时间

    CreatedDate或 LastModifiedDate 在实体类的属性上加上上面的注解 即可不用处理时间的问题 在插入时会自动生成创建时间 修改时自动更新修改时间 搭配 Column updatable false 使用 注解起作用还需
  • C++ 随机数的制作

    include
  • Spring security安全登录-当AJAX遇上Redirect

    前言 最近做平台引入spring security做为安全认证框架 在登录的时候使用的ajax的请求方式 最开始的做法是调用登录的接口 成功后再前端使用window location href index html的方式跳转到希望的页面 考
  • kali linux 2020.4 自带浏览器英文改中文

    刚开始用kali linux 可能一些伙伴也会像我一样遇到英文不通的情况 比如 系统自带的火狐浏览器是英文的 要变成中文直接敲入 sudo apt install firefox esr l10n zh cn y 然后重启一下火狐浏览器就可
  • 【Unity+MySQL】实现简单的注册登录系统

    目录 1 安装Unity引擎和Navicat软件 2 安装MySQL8 0数据库 2 1 下载msi文件 2 2 安装MySQL Server 8 0 2 3 配置环境变量 2 4 安装MySQL服务 2 5 开启MySQL服务 2 6 修
  • 软件外包开发项目管理工具

    随着软件项目的规模越做越大 项目管理人员需要使用工具管理项目进度 从而更有成效的管理好软件开发进度 软件开发的进度管理工具有很多 今天和大家分享一些常用的系统工具 希望对大家有所帮助 北京木奇移动技术有限公司 专业的软件外包开发公司 欢迎交
  • Hololens 学习-----1

    ww 学习资料 基本操作 链接 https learn microsoft com zh cn hololens hololens2 basic usage 链接 https learn microsoft com zh cn window
  • Java中Collection集合和Map集合详解(进阶三)

    目录 友情提醒 第一部分 单列集合 第一章 单列集合体系 Collection接口 1 1 单列集合是什么 与数组的区别在哪 1 2 单列集合体系与分类 第二章 单例集合体系Collection下的List接口 Set接口 2 0 List
  • JAVA随机生成十个不重复的整数(Arraylist,Set)

    随机生成十个不重复的整数有许多方法 这里我只写出两种 第一种 Set 先上代码 import java util HashSet import java util Set public class Demo01 public static