本文主要是介绍对Person类年龄的排序问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对Person类年龄的排序问题
方法一:对person类进行接口Comparable的实现
// An highlighted blockpublic class Person implements Comparable<Person>{private String name;private int age;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public int getAge() {return age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';}@Overridepublic int compareTo(Person o){return this.getAge()-o.getAge();}
}
以上代码重写了compareTo方法,以下:
// An highlighted block
@Overridepublic int compareTo(Person o){return this.getAge()-o.getAge();}
//此处定义一个Person的集合arr,接收Person
ArrayList<Person> arr = new ArrayList<>();
这样可以直接使用**Collections.sort(arr)**对集合进行排序。
方法二:重写Comparator接口
// An highlighted block//还是沿用上边的Person类,只是此处不再实现接口,故不重写**compareTo**import java.util.Arrays;
import java.util.Comparator;public class DemoLambda {public static void main(String[] args) {Person[] persons = {new Person("张三",28),new Person("李四",21),new Person("王五",45),new Person("王二",40)};//对Comparator接口进行匿名内部类重写,重写compare方法Arrays.sort(persons, new Comparator<Person>() { @Overridepublic int compare(Person o1, Person o2) {return o1.getAge()-o2.getAge();}});
// Arrays.sort(persons,((Person o1, Person o2) -> {return o1.getAge()-o2.getAge();})); //此处使用的Lambda表达式
// Arrays.sort(persons);
// for (Person person : persons) {
// System.out.println(person.toString());
// }}
}
核心代码
//An highlighted blockArrays.sort(persons, new Comparator<Person>() { @Overridepublic int compare(Person o1, Person o2) {return o1.getAge()-o2.getAge();}});
为了更简便,可以使用Lambda传参给Comparator接口,代码如下
Arrays.sort(persons,((Person o1,Person o2)->{return o1.getAge()-o2.getAge();}))
为了更更简便,可以使用省略后的Lambda,代码如下
Arrays.sort(persons,((o1,o2)->o1.getAge()-o2.getAge()))
第一次写博客,本人小白,轻喷
[1]: http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference
[2]: https://mermaidjs.github.io/
[3]: https://mermaidjs.github.io/
[4]: http://adrai.github.io/flowchart.js/
这篇关于对Person类年龄的排序问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!