編寫一個程式,獲取10個1至20的隨機數,要求隨機數不能重覆。 * * 分析: * A:創建隨機數對象 * B:創建一個HashSet集合 * C:判斷集合的長度是不是小於10 * 是:就創建一個隨機數添加 * 否:不搭理它 * D:遍歷HashSet集合 */ package Day17; imp ...
編寫一個程式,獲取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()); } } }