81,092
社区成员
发帖
与我相关
我的任务
分享
import java.util.ArrayList;
import java.util.List;
public class ListSort {
public static void main(String[] args) {
ArrayList<Personal> list = new ArrayList<Personal>();
list.add(new Personal(1,"李星","Lihongxing",28));
list.add(new Personal(2,"钱老大","Qianwei",35));
list.add(new Personal(3,"谭亮","Tannailiang",27));
list.add(new Personal(4,"文学明","Wencheng",25));
list.add(new Personal(5,"刘小鹏","Liuneng",29));
list.add(new Personal(6,"周智","Zhouhui",26));
list.add(new Personal(7,"毕小华","Biruixin",23));
list.add(new Personal(8,"安明丽","Anshulin",24));
list.add(new Personal(9,"陈明才","Chenrencai",25));
list.add(new Personal(10,"符大勇","Fuzhiyong",34));
sortlist(list);
}
public static void sortlist(ArrayList list){
List<Personal> arrange = new ArrayList<Personal>();
int age[] = new int[list.size()];
for(int i = 0; i < list.size(); i++)
age[i] = ((Personal)list.get(i)).getiAge();
sort(age);
for(int i = 0; i < age.length; i++){
for(int j = 0; j < list.size(); j++){
if(age[i] == ((Personal)list.get(j)).getiAge()){
arrange.add((Personal)list.get(j));
list.remove(j);
break;
}
}
}
for(int i = 0; i < arrange.size(); i++){
Personal p = (Personal)arrange.get(i);
System.out.println(p.getid() + " " + p.getCName() + " " + p.getPName() + " " + p.getiAge());
}
}
public static void sort(int[] values) {
int temp;
int j = 0;
for (int i = 1; i < values.length; i++) {
if(values[i]<values[i-1])//此处的判断很重要,这里体现了插入排序比冒泡排序和选择排序快的原因。
{
temp = values[i];
//数据往后移动
for (j=i-1; j>=0 && temp<values[j]; j--)
{
values[j+1] =values[j];
}
//将数据插入到j+1位置
values[j+1] =temp;
System.out.println("");
}
}
}
}
class Personal {
private int id;
private String CName;
private String PName;
private int iAge;
//构造函数
public Personal(int id,String Cname,String PName,int iAge){
this.id = id;
this.CName = Cname;
this.PName = PName;
this.iAge= iAge;
}
public int getiAge() {
return iAge;
}
public String getCName() {
return CName;
}
public String getPName() {
return PName;
}
public int getid() {
return id;
}
}
Collections.sort(list,new Comparator<Person>(){
public int compare(Person p1,Person p2){
return p1.getiAge()-p2.getiAge();
}
});