List<Integer> list = new ArrayList<>(); list.add(4); list.add(6); list.add(3); list.add(5); list.add(1); list.add(2); Iterator<Integer> iterator = list.iterator(); System.out.println("排序前:"); while(iterator.hasNext()) { System.out.print(iterator.next()+" "); } list.sort((a, b) -> a - b); //排序 Iterator<Integer> iteratorSort = list.iterator(); System.out.println(" "+"排序后:"); while(iteratorSort.hasNext()) { System.out.print(iteratorSort.next()+" "); }
输出结果:
排序前: 4 6 3 5 1 2 排序后: 1 2 3 4 5 6
下面用实体类里面的属性进行排序:
Person类:
public class Person { private String name; private Integer age; private Integer score; public Person(String name, Integer age, Integer score) { super(); this.name = name; this.age = age; this.score = score; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Integer getScore() { return score; } public void setScore(Integer score) { this.score = score; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + ", score=" + score + "]"; } }
测试一下:
List<Person> list = new ArrayList<>(); list.add(new Person("lc",22,100)); list.add(new Person("ly",16,70)); list.add(new Person("yyz",20,60)); list.add(new Person("mxy",20,80)); list.add(new Person("lxy",15,90)); list.sort((a, b) -> a.getAge() - b.getAge()); //按年龄排序 System.out.println("按年龄排序:"); Iterator<Person> iterator_age = list.iterator(); while(iterator_age.hasNext()) { System.out.println(iterator_age.next()+" "); } list.sort((a, b) -> a.getScore() - b.getScore()); System.out.println("按分数排序:"); Iterator<Person> iterator_score = list.iterator(); while(iterator_score.hasNext()) { System.out.println(iterator_score.next()+" "); }
输出结果:
按年龄排序: Person [name=lxy, age=15, score=90] Person [name=ly, age=16, score=70] Person [name=yyz, age=20, score=60] Person [name=mxy, age=20, score=80] Person [name=lc, age=22, score=100] 按分数排序: Person [name=yyz, age=20, score=60] Person [name=ly, age=16, score=70] Person [name=mxy, age=20, score=80] Person [name=lxy, age=15, score=90] Person [name=lc, age=22, score=100]