IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java-Random类与ArrayList类练习 -> 正文阅读

[Java知识库]java-Random类与ArrayList类练习

目录

前言

???????这些题目是我从网上找来的,但是代码是我自己打出来的,有些代码很多余,或者说不够简洁,我只从实现功能实现了代码,所以有些写得不是很好,以后再修改吧,主要是拿来练手而已。

题目1

  1. 随机验证码。
  • 随机生成十组六位字符组成的验证码。
  • 验证码由大小写字母、数字字符组成。
  • 代码实现,效果如图所示:
    在这里插入图片描述

代码如下:

public class Test01 {
    public static void main(String[] args) {
        char[] string = new char[]{
          'A','B','C','D','E','F','G','H','I','j',
          'K','L','M','N','O','P','Q','R','S','T',
          'U','V','W','X','Y','Z','a','b','c','d',
          'e','f','g','h','i','j','k','l','m','n',
          'o','p','q','r','s','t','u','v','w','x',
          'y','z','1','2', '3','4','5','6','7','8',
          '9'
        };

        Random random = new Random();
        StringBuilder stringBuilder = new StringBuilder();
        for(int j = 0;j < 10; j++){
            for(int i =0 ;i < 6;i++){
                stringBuilder.append(string[random.nextInt(string.length)]);
            }
            System.out.println("随机验证码:"+stringBuilder);
        }

    }
}

题目2

  1. 键盘录入学生信息,保存到集合中。
  • 循环录入的方式,1:表示继续录入,0:示结束录入。
  • 定义学生类,属性为姓名,年龄,使用学生对象保存录入数据。
  • 使用ArrayList集合,保存学生对象,录入结束后,遍历集合。
    代码实现,效果如图所示:
    在这里插入图片描述

代码:

public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
public class Test02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String choice="";
        ArrayList<Student> arrayList = new ArrayList<Student>();
        while(true){
            System.out.println("1. 录入信息 0. 退出");
            choice = scanner.nextLine();
            switch (choice){
                case "1":
                    inputmessage(arrayList);
                    break;
                case "0":
                    System.out.println("录入完毕");
                    for (Student student:arrayList
                         ) {
                        System.out.println("学生姓名 = "+student.getName()+", 年龄="+student.getAge());
                    }
                    System.exit(0);
            }
        }
    }

    public static void inputmessage(ArrayList arrayList){
        System.out.println("请输入姓名:");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        System.out.println("请输入年龄:");
        int age = scanner.nextInt();

        Student student = new Student(name,age);
        arrayList.add(student);

    }
}

题目3

  1. 集合工具类。
  • 定义findIndex方法,在某集合中,查找某元素,返回第一次出现的索引。

  • 定义replace方法,将某集合中的某元素,全部替换为新元素。

  • 代码实现,效果如图所示:
    在这里插入图片描述

代码:

public class Test03 {
    public static void main(String[] args) {
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        arrayList.add(83);
        arrayList.add(72);
        arrayList.add(83);
        arrayList.add(83);
        arrayList.add(77);
        arrayList.add(75);
        arrayList.add(72);
        arrayList.add(72);
        arrayList.add(67);
        arrayList.add(65);

        int index = findIndex(arrayList, 72);
        System.out.println("72的索引是:[");
        System.out.println("替换前:");
        for(int i =0;i<arrayList.size();i++){
            if( i == arrayList.size() - 1){
                System.out.print(arrayList.get(i)+"]");
                break;
            }
            System.out.print(arrayList.get(i)+", ");

        }
        System.out.println("");
        replace(arrayList,27,72);
        System.out.println("替换后:");
        for(int i =0;i<arrayList.size();i++){
            if( i == arrayList.size() - 1){
                System.out.print(arrayList.get(i)+"]");
                break;
            }
            System.out.print(arrayList.get(i)+", ");

        }

    }

    public static int findIndex(ArrayList<Integer> arrayList,int data){
        int index = -1;
        Integer temp = (Integer) data;
        for (Integer i:arrayList
             ) {
            if( i == data){
                index++;
                return index;
            }
            index++;
        }
        return index;
    }


    public static void replace(ArrayList<Integer> arrayList,Integer data,Integer replaceofdata){
        for(int i =0;i < arrayList.size();i++){
            if(arrayList.get(i).equals(replaceofdata)){
                arrayList.add(i,data);
                arrayList.remove(i+1);
            }
        }
    }
}

题目4

  1. 统计数字出现次数。
  • 定义getNumList方法,随机生成100个数字,数字范围从1到10。

  • 定义printCount方法,统计每个数字出现的次数并打印到控制台。

  • 代码实现,部分效果如图所示:
    在这里插入图片描述

代码:

public class Test04 {
    public static void main(String[] args) {
        ArrayList<Integer> arrayList = getNumList();
        printCount(arrayList);
    }

    public static ArrayList<Integer> getNumList(){
        ArrayList<Integer> arrayList = new ArrayList<>();
        Random random  = new Random();
        for(int i =0;i < 100;i++){
            arrayList.add(random.nextInt(10)+1);
        }
        return arrayList;

    }

    public static void printCount(ArrayList<Integer> arrayList){
        int[] num = new int[10];

        for(int i =0;i<arrayList.size();i++){
            switch (arrayList.get(i)){
                case 1:
                     num[0]++;
                    break;
                case 2:
                    num[1]++;
                    break;
                case 3:
                    num[2]++;
                    break;
                case 4:
                    num[3]++;
                    break;
                case 5:
                    num[4]++;
                    break;
                case 6:
                    num[5]++;
                    break;
                case 7:
                    num[6]++;
                    break;
                case 8:
                    num[7]++;
                    break;
                case 9:
                    num[8]++;
                    break;
                case 10:
                    num[9]++;
                    break;

            }


        }
        System.out.println("数字:1 -- "+num[0]);
        System.out.println("数字:2 -- "+num[1]);
        System.out.println("数字:3 -- "+num[2]);
        System.out.println("数字:4 -- "+num[3]);
        System.out.println("数字:5 -- "+num[4]);
        System.out.println("数字:6 -- "+num[5]);
        System.out.println("数字:7 -- "+num[6]);
        System.out.println("数字:8 -- "+num[7]);
        System.out.println("数字:9 -- "+num[8]);
        System.out.println("数字:10 -- "+num[9]);
    }
}

题目5

  1. 模拟统计班级考试分数分布情况,分别统计100-80,79-60,59-40,39-0各个阶段的人数。
  • 定义getScoreList方法,随机生成50个数字,数字范围从0到100。

  • 定义countScore方法,统计各个阶段的分数个数。

  • 定义printCount方法,打印各个阶段的统计结果。

  • 代码实现,效果如图所示:
    在这里插入图片描述

代码:

public class Test05 {
    public static void main(String[] args) {
        ArrayList<Integer> scoreList = getScoreList();
        printCount(countScore(scoreList));
    }

    public static ArrayList<Integer> getScoreList(){
        ArrayList<Integer> arrayList = new ArrayList<>();
        Random random  = new Random();
        for(int i =0;i < 50;i++){
            arrayList.add(random.nextInt(101));
        }
        return arrayList;
     }

     public static int[] countScore(ArrayList<Integer> arrayList){
        Integer temp;
        int[] num = new int[4];
        for(int i =0;i<arrayList.size();i++){
                temp = arrayList.get(i);
                if(temp <=39){
                    num[0]++;
                }
                if(temp >=40 && temp <= 59){
                    num[1]++;

                }
                if(temp >= 60 && temp <=79){
                    num[2]++;
                }
                if(temp >= 80){
                    num[3]++;
                }
         }
        return num;
     }

    public static void printCount(int[] num){

        System.out.println("39  分 -- 0  分"+num[0]);
        System.out.println("59  分 -- 40 分"+num[1]);
        System.out.println("79  分 -- 60 分"+num[2]);
        System.out.println("100 分 -- 80 分"+num[3]);

    }
}

题目6

  1. 随机生成n张扑克牌。
  • 代码实现,效果如图所示:
    在这里插入图片描述

代码:

//牌类
public class Card {
    private String name;
    private String number;

    public Card() {
    }

    public Card(String name, String number) {
        this.name = name;
        this.number = number;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }
}
//这个题目就是发牌的意思,就是随机多少张牌,就是发多少张牌
public class Test06 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要发的牌数");
        int n = scanner.nextInt();
        ArrayList<String> allCards = getAllCards();
        ArrayList<Card> randomCard = getRandomCard(allCards, n);
        System.out.println("随机"+n+"张牌:");
        for(int i =0;i < randomCard.size();i++){
            System.out.print(randomCard.get(i).getName()+randomCard.get(i).getNumber()+" ");
        }
    }

    //获取全部的牌数
    public static ArrayList<String> getAllCards(){
        ArrayList<String> arrayList = new ArrayList<>();
        String[] hs= new String[]{"方片","黑桃","红桃","梅花"};
        String[] ds= new String[]{"A","1","2","3","4","5","6","7","8","9","J","Q","K"};

        for(int i =0;i<hs.length;i++){
            for(int j =0;j< ds.length;j++){
                arrayList.add(hs[i]+ds[j]);
            }
        }

        return arrayList;
    }

//    发牌
    public static ArrayList<Card> getRandomCard(ArrayList<String> allcards,int n){
        ArrayList<Card> arraycardList = new ArrayList<>();
        Random random = new Random();
        if(n < 0 || n > allcards.size()){
            System.out.println("超越范围,无法获取");

        }else{
            for(int i = 0;i < n;i++){
                int i1 = random.nextInt(allcards.size());
                String s= allcards.get(i1);

                Card card = new Card(s.substring(0,1),s.substring(2));
                arraycardList.add(card);
                allcards.remove(i1);
            }
        }

        return arraycardList;
    }
}

题目7

  1. 自定义MyList类,实现存取元素的功能。
  • 定义add方法,可以保存元素,添加MyList尾部。
  • 定义remove方法,可以获取到最后添加的元素,并从MyList中移除该元素。
  • 定义show方法,可以展示MyList中的元素。
  • 代码实现,效果如图所示:
    在这里插入图片描述

代码:

public class MyList {
    private ArrayList<String> arrayList;

    public MyList() {
        this.arrayList = new ArrayList<String>();
    }

    public void add(String s){
        arrayList.add(s);
    }

    public String remove(){
        for(int i = 0;i< arrayList.size();i++) {
            if( i == arrayList.size() -1){
                return arrayList.remove(i);
            }
        }
        return null;
    }
    public void show(){
        System.out.print("[ ");
        for( int i = 0; i < arrayList.size(); i++){
            if(i == arrayList.size() -1){
                System.out.print(arrayList.get(i));
                break;
            }
            System.out.print(arrayList.get(i)+", ");
        }
        System.out.print("]");
    }
}
public class Test07 {
    public static void main(String[] args) {
        MyList myList = new MyList();
        myList.add("0");
        myList.add("1");
        myList.add("2");
        System.out.println("添加元素后:");
        myList.show();
        System.out.println(" ");
        System.out.println("获取元素:");
        System.out.println(myList.remove());
        System.out.println("获取元素后:");
        myList.show();

    }
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-25 11:31:22  更:2021-07-25 11:32:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 -2025/3/4 2:35:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码