随机发作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