章节练习:Java集合

第1题

随机验证码。

随机生成十组六位字符组成的验证码。
验证码由大小写字母、数字字符组成。

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

使用字符数组保存原始字符,利用Random类生成随机索引。
将十组验证码放到集合中
用Iterator迭代器遍历集合
package test01;

import java.util.*;

/**
 * @author yhm
 * @create 2020-07-16 15:17
 */
public class Test {
    public static void main(String[] args) {
        char[] arr = new char[26 + 26 + 10];
//使用字符数组保存原始字符
        for (int i = 0; i < arr.length; i++) {
            if (i < 10) {//前10个放数字
                arr[i] = (char) (i + 48);
            } else if (i < 10 + 26) {//中间26个放大写字母
                arr[i] = (char) (i + 65 - 10);
            } else {//剩下的放小写字母
                arr[i] = (char) (i + 97 - 10 - 26);
            }
        }
        ArrayList list = new ArrayList();
        Random rand = new Random();
        for (int i = 0; i < 10; i++) {
            String str = "";
            for (int j = 0; j < 6; j++) {
                int index = rand.nextInt(arr.length);
                str += arr[index];
            }
            list.add(str);
        }
        Iterator iter = list.iterator();
        while (iter.hasNext()) {
            System.out.println("随机验证码:" + iter.next());
        }
    }
}

第2题

键盘录入学生信息,保存到集合中。

循环录入的方式,1:表示继续录入,0:表示结束录入。
定义学生类,属性为姓名,年龄,使用学生对象保存录入数据。
使用ArrayList集合,保存学生对象,录入结束后,用foreach遍历集合。

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

package test02;

import java.util.ArrayList;
import java.util.Scanner;

/**
 * @author yhm
 * @create 2020-07-16 16:19
 */
public class Test2 {
    @SuppressWarnings("all")
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        Scanner input = new Scanner(System.in);
        while (true) {
            System.out.print("选择(1、录入;0、退出):");
            int select = input.nextInt();
            if (select == 0) {
                break;
            }
            System.out.print("姓名:");
            String name = input.next();
            System.out.print("年龄:");
            int age = input.nextInt();
            Student stu = new Student(name, age);
            list.add(stu);
        }
        for (Object object : list) {
            System.out.println(object);
        }
    }
}

class Student {
    private String name;
    private int age;

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

    public Student() {
        super();
    }

    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;
    }

    @Override
    public String toString() {
        return "Student [name=" + name + ", age=" + age + "]";
    }
}

第3题

案例:键盘录入一个字符串,去掉其中重复字符,打印出不同的那些字符,必须保证顺序。例如输入:aaaabbbcccddd,打印结果为:abcd。效果如图:
在这里插入图片描述

package test03;

import java.util.LinkedHashSet;
import java.util.Scanner;

/**
 * @author yhm
 * @create 2020-07-16 16:23
 */
public class Test03 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入一串字母:");
        String str = input.nextLine();
        System.out.println("str=" + str);
        LinkedHashSet set = new LinkedHashSet();
        for (int i = 0; i < str.length(); i++) {
            set.add(str.charAt(i));
        }
        System.out.print("去重后:");
        String result = "";
        for (Object object : set) {
            result += object;
        }
        System.out.println(result);
    }
}

第4题

生成一个随机100内小数,转换为保留两位小数的字符串,不考虑四舍五入的问题。
代码实现,效果如图所示:
在这里插入图片描述

package test04;

/**
 * @author yhm
 * @create 2020-07-16 16:29
 */
public class Test04 {
    public static void main(String[] args) {
        double num = Math.random() * 100;
        System.out.println("随机数为:" + num);
        String str = num + "";
        str = str.substring(0, str.indexOf(".") + 3);
        System.out.println("截取小数点后两位后为:" + str);
    }
}

第6题

筛选字符串。

定义数组,存入多个字符串。
删除长度大于5的字符串,打印删除后的数组。

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

package test05;

import java.util.Arrays;

/**
 * @author yhm
 * @create 2020-07-16 16:40
 */
public class Test05 {
    public static void main(String[] args) {
        String[] arr = {"helloworld", "java", "song", "atguigu", "li", "yan", "Iloveyou"};
        System.out.println("原字符串:");
        System.out.println(Arrays.toString(arr));
        int index = 0;
        while (index < arr.length) {
            if (arr[index].length() > 5) {
                System.arraycopy(arr, index + 1, arr, index, arr.length - index - 1);
                arr = Arrays.copyOf(arr, arr.length - 1);
            } else {
                index++;
            }
        }
        System.out.println("删除后:");
        System.out.println(Arrays.toString(arr));
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值