【Java】Collection遍历使用Iterable迭代器

2023-05-16

package com.example.demo.test;

import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

/**
 * @Author bennyrhys
 * @Date 9/1/21 11:48 PM
 * Iterable随机数生成器
 */
public class RandomString<T> implements Iterable{


    private final List<T> list;

    public RandomString(List<T> list) {
        this.list = list;
    }

    /**
     * Returns an iterator over elements of type {@code T}.
     *
     * @return an Iterator.
     */
    @Override
    public Iterator iterator() {
        return new Iterator() {
            @Override
            public boolean hasNext() {
                return true;
            }

            @Override
            public Object next() {
                return list.get((int) (list.size() * Math.random()));
            }
        };
    }

    public static void main(String[] args) {
        List<String> list = Arrays.asList("a", "b", "c");
        RandomString<String> randomString = new RandomString<>(list);

//        for (Object o : randomString) {
//            System.out.println(o);
//        }

        Iterator iterator = randomString.iterator();
        for (int i = 0; i < 10; i++) {
            System.out.println(iterator.next());
        }
    }
}

a
b
c
a
b
c
a
c
a
c

Process finished with exit code 0

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

【Java】Collection遍历使用Iterable迭代器 的相关文章

随机推荐

  • 第一次实现moveit控制gazebo仿真ur5机械臂

    moveit控制gazebo仿真ur5机械臂问题汇总 第一次成功驱动仿真环境机械臂 xff0c 接下来准备在仿真环境下的机械臂上添加一个末端六维力HEX H传感器和fg2二指手抓 文章目录 moveit控制gazebo仿真ur5机械臂问题汇
  • 最棒的 JavaScript 学习指南

    在过去的一年间 xff08 2017年 xff09 xff0c 我们对比了近24000篇 JavaScript 文章 xff0c 并从中挑选出了最好的55篇 我们做了这个目录 xff0c 认为阅读有经验的程序员写的文章是一个很好的学习方式
  • app = Flask(__name__) 是个什么东西

    34 34 34 第一部分 xff0c 初始化 xff1a 所有的Flask都必须创建程序实例 xff0c web服务器使用wsgi协议 xff0c 把客户端所有的请求都转发给这个程序实例 程序实例是Flask的对象 xff0c 一般情况下
  • 启动gazebo仿真环境报错[spawn_model-4] process has died

    启动gazebo仿真环境报错 spawn model 4 process has died 错误信息如下 xff1a spawn model 4 process has died pid 9871 exit code 1 cmd opt r
  • 安全文章研读:深度学习对抗攻击防御策略的一些实现

    本文整理自哈尔滨工业大学硕士论文 xff1a 深度学习对抗攻击防御策略的研究与实现 0x01 太长不看 深度学习在表现优异的同时 xff0c 还存在易受攻击的缺陷 多数防御策略只能应对特定的攻击方法 xff0c 普适性比较低 xff0c 另
  • CMakeList添加指定路径的库和头文件

    网上东一榔头西一棒槌的太多了 xff0c 而且不完整 xff0c 不适合对CMakeLists txt不了解的新手 一下两方法实测有效 一 方法一 包含ffmpeg头文件路径 这里以CMakeLists txt为参考路径 span clas
  • CMakeList增加make install

    要在CMakeList txt文件中增加make install和make clean指令 xff0c 可以在CMakeList txt文件中添加以下代码 xff1a 添加安装文件 span class token function ins
  • 使用SDF对ROS-Gazebo中模型进行编辑修改

    什么是SDF文件 SDF是一种XML格式 xff0c 能够描述机器人 静态和动态物体 照明 地形甚至物理学的各方面的信息 SDF可以精确描述机器人的各类性质 xff0c 除了传统的运动学特性之外 xff0c 还可以为机器人定义传感器 表面属
  • 前向声明和命名空间的关系

    问题描述 span class token comment a hh span span class token keyword class span span class token class name B span span clas
  • ADB常用命令大全

    ADB环境变量配置 adb exe的路径 xff1a Android SDK platform tools 常用命令 adb help 查看帮助 adb version 查看adb版本号 adb devices 查看设备 adb conne
  • 【Java】最长公共子串

    Scanner in span class token operator 61 span span class token keyword new span span class token class name Scanner span
  • 【分布式】白话理解CAP与Kafka

    文章目录 一 CAP定理的引入二 CAP原理的解释1 CAP的定义2 AP的解释3 CP的解释4 AC的解释 三 CAP原理的总结四 类比kafka 官网AC 配置AP或者CP 一 CAP定理的引入 在过去 xff0c 因为信息处理的业务量
  • 手动搭建史上最高效最便宜的全自动图床Typora+PicGo+Gitee

    文章目录 效果图下载软件创建gitee存储配置picgogitee插件后重启picgo开机自启 xff0c 图片重命名查看当前图床的服务端口 xff0c 方便接下来的配置 测试上传 效果图 下载软件 Typora 43 PicGo 创建gi
  • 优秀的 Spring Boot 语言开源项目

    优秀的 Spring Boot 语言开源项目 xff0c 涵盖了企业级系统框架 文件文档系统 秒杀系统 微服务化系统 后台管理系统等各个方面 Spring Boot 中文索引 项目名称 分布式敏捷开发系统架构 项目简介 xff1a 基于 S
  • xxl-job中cron表达式详解

    7个部分组成 秒数 分钟 小时 日期 月份 星期 年份 可为空 5 每部分范围 及 符号解释 秒 0 59 分 0 59 小时 0 23 日期 1 31 L W C 月份 1 12 或者 JAN DEC 可以用0 11 或用字符串 JAN
  • 【高效能办公】快速搭建前端Mock数据接口供后端调用

    配置安装 span class token comment 全局安装 span span class token function npm span i 64 shymean mock server g span class token c
  • 【Linux】上传下载文件命令rz、sz

    文章目录 安装上传下载对比工具 安装 要使用rz sz命令传输文件需要给服务器安装lrzsz yum y install lrzsz 上传 上传文件只需在shell终端仿真器中输入命令 rz xff0c 即可从弹出的对话框中选择本地磁盘上的
  • 【Java】程序制作Docker镜像 推荐方案

    文章目录 背景制作条件Dockerfile指令 xff1a 实践步骤使用官网提供的基础镜像作为镜像基础设定容器的正确的时间和时区容器中采用非 root 用户权限启动应用程序 DockerFile样例COPY 与 ADD 区别 举个栗子 背景
  • 【Linux】ln -sf软连接

    文章目录 功能格式命令参数 xff1a 软链接硬链接 场景情况 功能 功能是为某一个文件在另外一个位置建立一个同步的链接 当 我们需要在不同的目录 xff0c 用到相同的文件时 xff0c 我们不需要在每一个需要的目录下都放一个必须相同的文
  • 【Java】Collection遍历使用Iterable迭代器

    span class token keyword package span span class token namespace com span class token punctuation span example span clas