package cn.itcast.demo1;
public class Student {
private String name ;
private double TotalScore;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Student(String name, double totalScore) {
this.name = name;
TotalScore = totalScore;
}
public double getTotalScore() {
return TotalScore;
}
public Student() {
}
public void setTotalScore(double totalScore) {
TotalScore = totalScore;
}
@Override
public String toString() {
return name + ", TotalScore=" + TotalScore;
}
}
/*
1.有5个学生,每个学生有三门功课
2.从键盘输入以上数据(姓名,三门课成绩)
3.输入格式为:zhangshan,30,40,60并计算出总成绩
4.把学生信息和计算出来的总成绩按从低到高的顺序进行存储
分析:
(1)定义一个学生类,属性:姓名,总成绩
(2)将学生对象存到ArrayList中
(3)Collections工具类中有一个方法,public static <T> void sort(List<T> list,Comparator<? super T> c)
只能传list的实现类
*/public class Test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
List<Student> list = new ArrayList<Student>();
for (int i = 0; i < 5; i++) {
System.out.println("请输入学生姓名和成绩:");
String str = sc.nextLine();
String[] arr = str.split(",");
double score = 0;
for (int j = 1; j < arr.length; j++) {
score += Double.parseDouble(arr[j]);
}
list.add(new Student(arr[0], score));
}
Collections.sort(list, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
//返回值>0,降序 <0,升序 =0,原样排列
return (int) (o1.getTotalScore() - o2.getTotalScore());
}
});
//遍历集合
for (Student student : list) { System.out.println(student); }
//不用匿名内部类
/*
* MyComparator myCom = new MyComparator();
* Collections.sort(list,myCom);
*/
}
}
//自定义一个比较器类,去实现Comparator
class MyComparator implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
return (int) (o1.getTotalScore() - o2.getTotalScore());
}
}
集合练习题之二
最新推荐文章于 2019-03-05 20:43:49 发布