下面的代码是根据学生年龄排序学生list 的一个例子:
import java.util.ArrayListimport java.util.List
class Student {
private String name
private int age
public Student(String name, int age) {
this.name = name
this.age = age
}
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 "Perosn [name=" + name + ", age=" + age + "]"
}
}
public class App {
public static void main(String[] args) {
List<Student> students = new ArrayList<>()
students.add(new Student("abc", 12))
students.add(new Student("bcd", 20))
students.add(new Student("cde", 17))
students.add(new Student("def", 25))
students.add(new Student("efg", 15))
students.sort((x, y) -> Integer.compare(x.getAge(), y.getAge()))
for (Student stu : students) {
System.out.println(stu)
}
}
}
运行结果:
最近这么多人问排序的问题啊,都快回答腻了,你可以先搜一搜看看别的网站有没有,不过既然都回答了,我就估且再发些代码吧,这里只用String的List排序,如果用到复杂的对象你自己懂得变通吧
public class SortList {private static DateFormat df = new SimpleDateFormat("yyyy-MM-dd")
public static void main(String[] args) {
List<String> dates = new ArrayList<String>()
dates.add("2014-10-02")
dates.add("2013-12-01")
dates.add("2014-11-02")
dates.add("2014-01-05")
Collections.sort(dates, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
Date d1 = null, d2 = null
try {
d1 = df.parse(o1)
} catch (ParseException e) {
e.printStackTrace()
}
try {
d2 = df.parse(o2)
} catch (ParseException e) {
e.printStackTrace()
}
if(null == d1 || null == d2) {
return 0
}
return d1.compareTo(d2)
}
})
System.out.println(dates)
}
}
根据字符串的含义,进行对象化,比如,Student,有三个属性,序号,姓名,分数注意重写Student的Compareable接口
然后,List<String>变成List<Student>students=new ArrayList<Student>
然后,遍历list,算出平均分,放入新的SortList<Student>
打印结果