简单的算法,那就选择排序法了.用你的id排序,替换到里面就行了 int[] a= new int[5]; a[1]=10; a[2]=1; a[3]=5; a[4]=4; a[0]=16; int temp; for(int i = 0;i<a.length-1;i++){ for(int j= i+1;j<a.length;j++){ if(a[i]>a[j]){ temp=a[j]; a[j]=a[i]; a[i]=temp; } } } System.out.println(Arrays.toString(a));
设计三个方法 分别对应id,name,scope 的排序.
代码如下:import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * <p>功能描述: 用于排序Student的类</p> * @author jack * @version * @update:[日期YYYY-MM-DD] [更改人姓名][变更描述] */ public class ListSort {
/** * <p>功能描述:ID排序</p> */ public static final int SORT_ID = 0; /** * <p>功能描述:名字排序</p> */ public static final int SORT_NAME = 1; /** * <p>功能描述:得分排序</p> */ public static final int SORT_SCORE = 2;
/** * <p>功能描述:通过类型进行排序</p> * @param sortType * @author:jack * @update:[日期YYYY-MM-DD] [更改人姓名][变更描述] */ @SuppressWarnings("unchecked") public void sortStudentBy(List<Student> students, int sortType) { final int curSortType = sortType; Collections.sort(students, new Comparator() { public int compare(Object o1, Object o2) { Student s1 = (Student) o1; Student s2= (Student) o2; switch(curSortType) { case ListSort.SORT_ID : { return s1.getId()-s2.getId()>0?1:0; } case ListSort.SORT_NAME : { return s1.getName().compareTo(s2.getName()); } case ListSort.SORT_SCORE : { return s1.getScore()-s2.getScore()>0?1:0; } default : return s1.getId()-s2.getId()>0?1:0; } } });
}
/** * <p>功能描述:初始化测试数据</p> * @return * @author:jack * @update:[日期YYYY-MM-DD] [更改人姓名][变更描述] */ public List<Student> init() { List<Student> students = new ArrayList<Student>(); Student s1 = new Student(1,"cc",60); Student s2 = new Student(2,"aa",80); Student s3 = new Student(3,"dd",100); students.add(s3); students.add(s1); students.add(s2); return students; } public static void main(String[] args) { ListSort sort = new ListSort(); List<Student> students = sort.init(); System.out.println("以名字进行排序:"); sort.sortStudentBy(students, ListSort.SORT_NAME); for(Student student : students) { System.out.println(student.getId()+"\t"+student.getName()+"\t"+student.getScore()); } sort.sortStudentBy(students, ListSort.SORT_ID); System.out.println("以ID进行排序:"); for(Student student : students) { System.out.println(student.getId()+"\t"+student.getName()+"\t"+student.getScore()); }
a[1]=10;
a[2]=1;
a[3]=5;
a[4]=4;
a[0]=16;
int temp;
for(int i = 0;i<a.length-1;i++){
for(int j= i+1;j<a.length;j++){
if(a[i]>a[j]){
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
System.out.println(Arrays.toString(a));
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* <p>功能描述: 用于排序Student的类</p>
* @author jack
* @version
* @update:[日期YYYY-MM-DD] [更改人姓名][变更描述]
*/
public class ListSort {
/**
* <p>功能描述:ID排序</p>
*/
public static final int SORT_ID = 0;
/**
* <p>功能描述:名字排序</p>
*/
public static final int SORT_NAME = 1;
/**
* <p>功能描述:得分排序</p>
*/
public static final int SORT_SCORE = 2;
/**
* <p>功能描述:通过类型进行排序</p>
* @param sortType
* @author:jack
* @update:[日期YYYY-MM-DD] [更改人姓名][变更描述]
*/
@SuppressWarnings("unchecked")
public void sortStudentBy(List<Student> students, int sortType) {
final int curSortType = sortType;
Collections.sort(students, new Comparator() {
public int compare(Object o1, Object o2) {
Student s1 = (Student) o1;
Student s2= (Student) o2;
switch(curSortType) {
case ListSort.SORT_ID : {
return s1.getId()-s2.getId()>0?1:0;
}
case ListSort.SORT_NAME : {
return s1.getName().compareTo(s2.getName());
}
case ListSort.SORT_SCORE : {
return s1.getScore()-s2.getScore()>0?1:0;
}
default : return s1.getId()-s2.getId()>0?1:0;
}
}
});
}
/**
* <p>功能描述:初始化测试数据</p>
* @return
* @author:jack
* @update:[日期YYYY-MM-DD] [更改人姓名][变更描述]
*/
public List<Student> init() {
List<Student> students = new ArrayList<Student>();
Student s1 = new Student(1,"cc",60);
Student s2 = new Student(2,"aa",80);
Student s3 = new Student(3,"dd",100);
students.add(s3);
students.add(s1);
students.add(s2);
return students;
}
public static void main(String[] args) {
ListSort sort = new ListSort();
List<Student> students = sort.init();
System.out.println("以名字进行排序:");
sort.sortStudentBy(students, ListSort.SORT_NAME);
for(Student student : students) {
System.out.println(student.getId()+"\t"+student.getName()+"\t"+student.getScore());
}
sort.sortStudentBy(students, ListSort.SORT_ID);
System.out.println("以ID进行排序:");
for(Student student : students) {
System.out.println(student.getId()+"\t"+student.getName()+"\t"+student.getScore());
}
System.out.println("以得分进行排序:");
sort.sortStudentBy(students, ListSort.SORT_SCORE);
for(Student student : students) {
System.out.println(student.getId()+"\t"+student.getName()+"\t"+student.getScore());
}
}
/**
* <p>功能描述: 学生类</p>
* @author jack
* @version
* @update:[日期YYYY-MM-DD] [更改人姓名][变更描述]
*/
class Student {
int id;
String name;
int score;
public Student(){}
public Student(int id, String name, int score) {
super();
this.id = id;
this.name = name;
this.score = score;
}
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 getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}}