代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
public class Pact {
public static void main(String[] args) {
// 伪随机数类 Random
Random rand = new Random();
// 实例集合
List<PersonComparator> list = new ArrayList<PersonComparator>();
//伪随机数类 rand.nextInt(100-50+1)+50) 范围: 50到100 [50,101)
list.add(new PersonComparator("学号:", "170101", "姓名: ", "同学:01", "成绩:",
rand.nextInt(100 - 50 + 1) + 50));
list.add(new PersonComparator("学号:", "170102", "姓名: ", "同学:02", "成绩:",
rand.nextInt(100 - 50 + 1) + 50));
list.add(new PersonComparator("学号:", "170103", "姓名: ", "同学:03", "成绩:",
rand.nextInt(100 - 50 + 1) + 50));
list.add(new PersonComparator("学号:", "170104", "姓名: ", "同学:04", "成绩:",
rand.nextInt(100 - 50 + 1) + 50));
list.add(new PersonComparator("学号:", "170105", "姓名: ", "同学:05", "成绩:",
rand.nextInt(100 - 50 + 1) + 50));
list.add(new PersonComparator("学号:", "170106", "姓名: ", "同学:06", "成绩:",
rand.nextInt(100 - 50 + 1) + 50));
list.add(new PersonComparator("学号:", "170107", "姓名: ", "同学:07", "成绩:",
rand.nextInt(100 - 50 + 1) + 50));
list.add(new PersonComparator("学号:", "170108", "姓名: ", "同学:08", "成绩:",
rand.nextInt(100 - 50 + 1) + 50));
list.add(new PersonComparator("学号:", "170109", "姓名: ", "同学:09", "成绩:",
rand.nextInt(100 - 50 + 1) + 50));
list.add(new PersonComparator("学号:", "170110", "姓名: ", "同学:10", "成绩:",
rand.nextInt(100 - 50 + 1) + 50));
list.add(new PersonComparator("学号:", "170111", "姓名: ", "同学:11", "成绩:",
rand.nextInt(100 - 50 + 1) + 50));
// 调用sort排序 例接口
//new Comparator 接口
Collections.sort(list, new Comparator<PersonComparator>() {
// 实现接口的方法 compare
public int compare(PersonComparator o1, PersonComparator o2) {
if (o1.getTongXie() != o2.getTongXie()) {
// 成绩排序倒叙 02-01
return o2.getTongXie() - o1.getTongXie();
} else {
// 成绩相同按学号排 compareTo 顺序排序
return o1.getXueHao().compareTo(o2.getXueHao());
}
}
});
// 使用迭代器Iterator
Iterator<PersonComparator> lterator = list.iterator();
// 循环打印 hasNext()迭代器里的方法
while (lterator.hasNext()) {
// 赋值到 PersonComparator ata
// 如果数据类型是接口要使用迭代器
PersonComparator ata = lterator.next();
//拼接打印内容
System.out.println(ata.getName() + ata.getXueHao() + ata.getXM()
+ ata.getXingMing() + ata.getCJ() + ata.getTongXie());
}
}
}
class PersonComparator {
// 文字学号
private String name;
// 学号
private String XueHao;
// 文字姓名
private String XM;
// 姓名
private String XingMing;
// 文字成绩
private String CJ;
// 成绩
private int TongXie;
// 调用方法返回集合方法
public String getName() {
return name;
}
public String getXueHao() {
return XueHao;
}
public String getXM() {
return XM;
}
public String getXingMing() {
return XingMing;
}
public String getCJ() {
return CJ;
}
public int getTongXie() {
return TongXie;
}
//使用该构造器向集合添加对象
public PersonComparator(String name, String XueHao, String XM,
String XingMing, String CJ, int TongXie) {
// this.name 集合里的值 name 添加值
this.name = name;
this.XueHao = XueHao;
this.XM = XM;
this.XingMing = XingMing;
this.CJ = CJ;
this.TongXie = TongXie;
}
}
效果:
大致思路:
1先实例list集合 2再添加对象 2.1要使用类里面的方法添加必须new出方法来 3.调用Collections.sort 排序 4.实例接口Comparator 5声明迭代器:itertor 指明类类型 7.打印输出
声明自定义类 2创建交回对象类型 3.创建对象的方法 4创建对象的添加方法
说明:使用迭代器的原因是为了取出集合里的对象;再添加对象是就要声明对象的添加对象的构造器;