编写一个程序,获取10个1至20的随机数,要求随机数不能重复。
*
* 分析:
* A:创建随机数对象
* B:创建一个HashSet集合
* C:判断集合的长度是不是小于10
* 是:就创建一个随机数添加
* 否:不搭理它
* D:遍历HashSet集合
*/
package Day17; import java.util.HashSet; import java.util.Random; //编写一个程序,获取10个1-20的随机数 public class Lx3 { public static void main(String[] args) { //创建一个随机数对象 Random AA =new Random(); //创建一个set集合 HashSet<Integer> MM = new HashSet<Integer>(); //判断集合长度是否小于10 while(MM.size()<10){ //public int nextInt(int n)返回一个伪随机数, // 它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值 //获取1-20之间的随机数--其中随机数的产生包左不包右--所以默认是0-19--所以多加1使其从1-20 int num = AA.nextInt(20) +1; MM.add(num); } //遍历HashSet集合 for(Integer e: MM){ System.out.println(e); } } }
/*
* 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
*
* 分析:
* A:定义学生类
* B:创建一个TreeSet集合
* C:总分从高到底如何实现呢?
* D:键盘录入5个学生信息
* E:遍历TreeSet集合
学生类
package Day17; //键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台 public class Student3 { private String name; private int Chinese; private int number; private int English; //构造方法 public Student3(){} public Student3(String name, int chinese, int number, int english) { this.name = name; Chinese = chinese; this.number = number; English = english; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getChinese() { return Chinese; } public void setChinese(int chinese) { Chinese = chinese; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public int getEnglish() { return English; } public void setEnglish(int english) { English = english; } //给出学生总分---并返回值 public int show(){ return this.Chinese+this.number+this.English; } }
测试类
package Day17; import java.util.Comparator; import java.util.Scanner; import java.util.TreeSet; /*键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台 * 分析: * A:创建一个学生类---用来存储学生的基本信息--实现接口为Comparable * B:创建测试类 * A: 创建集合TreeSet保证排序和唯一性 * B: 创建学生类对象--将其添加到集合中 * C: 使用自然排序---重写Comparable接口下的CompareTo方法 * D: 遍历输出即可 */ public class Lx4 { public static void main(String[] args) { //创建TreeSet集合 //TreeSet<Student3> AA = new TreeSet<Student3>();---自然排序 //new comperator比较器排序 TreeSet<Student3> AA = new TreeSet<Student3>(new Comparator<Student3>() { @Override//重写此方法---传入两个对象 public int compare(Student3 a , Student3 b ) { //将传入的俩个对象数据进行比较--首先比较其总分 //如果是a-b,则排序是从低到高 //如果是b-a,则排序是从高到低 int num = b.show()-a.show(); //两个对象的数据总分相同比较其语文分值 int num1 = num==0? b.getChinese()-a.getChinese():num; //两个对象的语文分值也相同则比较数学分值 int num2 = num1==0?b.getNumber()-a.getNumber(): num1; //两个对象数学分值也相同则比较英语的分值 int num3 = num2==0?b.getEnglish()-a.getEnglish():num2; //如何如上都相同--则比较其姓名 int num4 = num3==0?b.getName().compareTo(a.getName()):num3; return num4; } }); //键盘录入五个学生的信息 for(int x=1;x<=5;x++){ //创建键盘输入对象 Scanner sc = new Scanner(System.in); System.out.println(\"请你输入第\"+x+\"个学生的名字\"); String name = sc.nextLine(); System.out.println(\"请你输入第\"+x+\"个学生的语文成绩\"); String Chinese = sc.nextLine(); System.out.println(\"请你输入第\"+x+\"个学生的数学成绩\"); String number = sc.nextLine(); System.out.println(\"请你输入第\"+x+\"个学生的英语成绩\"); String english= sc.nextLine(); //创建学生对象并将键盘录入的信息添加到学生类对象中 Student3 SM = new Student3(); SM.setName(name); //使用Integer类下的parseInt方法 //public static int parseInt(String s)将字符串参数作为有符号的十进制整数进行解析。转化为int类型的整数 SM.setChinese(Integer.parseInt(Chinese)); SM.setNumber(Integer.parseInt(number)); SM.setEnglish(Integer.parseInt(english)); //将学生对象的信息添加到集合中 AA.add(SM); } //遍历输出此集合 for(Student3 e: AA){ System.out.println(e.getName()+\"\\t\"+e.getChinese()+\"\\t\"+e.getNumber()+\"\\t\"+e.getEnglish()); } } }
来源:https://www.cnblogs.com/ztg-java-xuexi/p/16061404.html
本站部分图文来源于网络,如有侵权请联系删除。