随机产生10个学生,按ID大小排列
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.Comparator;
?
public class Test4 {
?public static void main(String[] args) {
??Random ran=new Random();
??List list=new ArrayList();
??for(int i=0;i<10;i++){
???Student s=new Student();
???s.setId(i+1);
???s.setName(createName());
???s.setAge(ran.nextInt(6)+15);
???list.add(s);
??}
??Collections.sort(list,new StudentComparator());
??/*for(int i=0;i<list.size()-1;i++){
???for(int j=i+1;j<list.size();j++){
????Student s1=(Student)list.get(i);
????Student s2=(Student)list.get(j);
????int age1=s1.getAge();
????int age2=s2.getAge();
????if(age1>age2){
?????//list.set(i, s2);
?????//list.set(j, s1);
?????Collections.swap(list, i, j);
????}
???}
??}*///也可以这样排序
??for(int i=0;i<list.size();i++){
???Student s=(Student)list.get(i);
???System.out.println(s);
??}
?}
?public static String createName(){
??Random ran=new Random();
??int len=ran.nextInt(5)+6;
??String name="";
??for(int i=0;i<len;i++){
???name+=(char)(ran.nextInt(26)+'a');
??}
??return name;
?}
}
class Student {
?private int id;
?private String name;
?private int age;
?public int getId() {
??return id;
?}
?public void setId(int id) {
??this.id = id;
?}
?public String getName() {
??return name;
?}
?public void setName(String name) {
??this.name = name;
?}
?public int getAge() {
??return age;
?}
?public void setAge(int age) {
??this.age = age;
?}
?@Override
?public String toString() {
??return id+"\t"+name+"\t"+age;
?}
?@Override
?public int hashCode() {
??final int prime = 31;
??int result = 1;
??result = prime * result + age;
??result = prime * result + id;
??result = prime * result + ((name == null) ? 0 : name.hashCode());
??return result;
?}
?@Override
?public boolean equals(Object obj) {
??if (this == obj)
???return true;
??if (obj == null)
???return false;
??if (getClass() != obj.getClass())
???return false;
??Student other = (Student) obj;
??if (age != other.age)
???return false;
??if (id != other.id)
???return false;
??if (name == null) {
???if (other.name != null)
????return false;
??} else if (!name.equals(other.name))
???return false;
??return true;
?}
}
class StudentComparator implements Comparator{
?public int compare(Object o1, Object o2) {
??Student s1=(Student)o1;
??Student s2=(Student)o2;
??return s1.getAge()-s2.getAge();
?}
}
?
打印结果:
7?joziywjc?15
9?sqclbqoqpv?15
3?qkpxii?16
4?rsoohwbx?16
8?skjolpg?16
1?swzkdmjh?17
10?vdvpxdu?17
2?awsjwwqneq?18
5?gfiashjeyb?19
6?evjlfdqfrt?19