黑马程序员技术交流社区
标题:
供大家欣赏一段不错的代码,关于集合
[打印本页]
作者:
梦龙0201
时间:
2015-9-22 23:27
标题:
供大家欣赏一段不错的代码,关于集合
package cn.itcast_自然排序与比较器排序;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
/*
* 创建5个学生信息(姓名、语文成绩、英语成绩、数学成绩),按照总分从高到低在控制台输出
*/
public class Demo_比较器排序 {
public static void main(String[] args) {
// 创建集合对象,并用比较器排序,实现匿名内部类
TreeSet<Stu> ts = new TreeSet<Stu>(new Comparator<Stu>() {
@Override
public int compare(Stu o1, Stu o2) {
// 首先,按要求总分从高到底排序
int num = o1.getSum() - o2.getSum();
// 如果总分相同,再判断其他条件
int num1 = num == 0 ? o1.getChinese() - o2.getChinese() : num;
int num2 = num1 == 0 ? o1.getEnglish() - o2.getEnglish() : num1;
int num3 = num2 == 0 ? o1.getMath() - o2.getMath() : num2;
return num3;
}
});
System.out.println("开始录入成绩!");
// 控制台输入3个学生信息
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
System.out.println("请输入学生姓名:");
String name = sc.next();
System.out.println("请输入语文成绩:");
int chinese = sc.nextInt();
System.out.println("请输入英语成绩:");
int english = sc.nextInt();
System.out.println("请输入数学成绩:");
int math = sc.nextInt();
// 将学生封装到到学生对象中
Stu stu = new Stu();
stu.setName(name);
stu.setChinese(chinese);
stu.setEnglish(english);
stu.setMath(math);
// 将学生对象添加到集合中
ts.add(stu);
}
System.out.println("成绩录入完毕!");
System.out.println("姓名\t\t" + "语文成绩\t\t" + "英语成绩\t\t" + "数学成绩\t\t"+"总分");
// 遍历输出
for (Stu s : ts) {
System.out.println(s.getName() + "\t\t" + s.getChinese() + "\t\t"
+ s.getEnglish() + "\t\t" + s.getMath()+"\t\t"+s.getSum());
}
}
}
复制代码
作者:
z6528328
时间:
2015-9-22 23:37
写的很好,我也尝试写一个
作者:
冰霜之卅
时间:
2015-9-23 00:55
哈哈 你这还少个Stu类呀。。
不完整 不完整,,
作者:
meihua
时间:
2015-9-23 07:28
看看,集合用的还是很多的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2