01_LinkedList集合练习
案例演示
需求:编写一个程序,
获取10个1至20的随机数,
要求随机数不能重复。
package LinkedListDemo01;
import java.util.LinkedHashSet;
import java.util.Random;
import java.util.Set;
import java.util.TreeSet;
public class LinkedListTest01 {
public static void main(String[] args) {
/* A:
案例演示
需求:编写一个程序,
获取10个1至20的随机数,
要求随机数不能重复。
Random();
1,不能重复,说明元素唯一,且有序,所以使用LinkedHashSet
2.长度小于10
3,是整数
4,输出
*/
Random random = new Random();
TreeSet<Integer> treeSet = new TreeSet<>();
while (treeSet.size()<10){
int num = random.nextInt(20);
treeSet.add(num);
}
System.out.println(treeSet);//[1, 5, 6, 7, 10, 11, 13, 16, 17, 18]
}
}
02_TreeSet集合练习
案例演示:学生类
案例演示:
需求:键盘录入3个学生信息(姓名, 语文成绩, 数学成绩, 英语成绩),
按照总分从高到低输出到控制台。
1.创建student类
2.键盘录入4个信息
3.把3个学生对象输入到集合中
4.遍历出来
package LinkedListDemo01;
public class Student {
private String name;
private int chineseScore;
private int mathScore;
private int englishScore;
public Student() {
}
public Student(String name, int chineseScore, int mathScore, int englishScore) {
this.name = name;
this.chineseScore = chineseScore;
this.mathScore = mathScore;
this.englishScore = englishScore;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getChineseScore() {
return chineseScore;
}
public void setChineseScore(int chineseScore) {
this.chineseScore = chineseScore;
}
public int getMathScore() {
return mathScore;
}
public void setMathScore(int mathScore) {
this.mathScore = mathScore;
}
public int getEnglishScore() {
return englishScore;
}
public void setEnglishScore(int englishScore) {
this.englishScore = englishScore;
}
//获取总分的方法
public int getTotalScore(){
return chineseScore+englishScore+mathScore;
}
}
测试类
package LinkedListDemo01;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeMap;
import java.util.TreeSet;
public class TreeSetTest01 {
/*A:
案例演示:
需求:键盘录入3个学生信息(姓名, 语文成绩, 数学成绩, 英语成绩),
按照总分从高到低输出到控制台。
1.创建student类
2.键盘录入4个信息
3.把3个学生对象输入到集合中
4.遍历出来
*/
public static void main(String[] args) {
Student student = new Student();
//匿名内部类打印
TreeSet<Student> treeSet = new TreeSet<>(new Comparator<Student>() {
@Override
public int compare(Student a, Student b) {
//先按成绩排名,成绩相等按名字排名
int num=a.getTotalScore()-b.getTotalScore();
int num1=num==0? a.getName().compareTo(b.getName()):num;
return num1;
}
});
for (int i = 0; i < 4; i++) {
Scanner sc1 = new Scanner(System.in);
System.out.println("请输入第"+i+"个学生的姓名");
String name = sc1.nextLine();
student.setName(name);
System.out.println("请输入第" + i + "个学生的语文成绩");
int yw = sc1.nextInt();
student.setChineseScore(yw);
System.out.println("请输入第" + i + "个学生的数学成绩");
int sx= sc1.nextInt();
student.setMathScore(sx);
System.out.println("请输入第" + i + "个学生的英语成绩");
int yy = sc1.nextInt();
student.setEnglishScore(yy);
}
System.out.println("名次\t姓名\t语文\t数学\t英语\t总分");
int i=0;
for (Student students : treeSet) {
System.out.println((++i)+"\t"+student.getName()+"\t"+student.getChineseScore()+"\t"+student.getMathScore()+"\t"+student.getEnglishScore()+"\t"+student.getTotalScore());
}
}
}