Java 排序数组列表<;字符串>;由从最高值的每个字符串中解析的整数->;最低的?
例如,我会说ArrayList中有10个字符串,每个字符串代表一个人的姓名和年龄:Java 排序数组列表<;字符串>;由从最高值的每个字符串中解析的整数->;最低的?,java,sorting,arraylist,Java,Sorting,Arraylist,例如,我会说ArrayList中有10个字符串,每个字符串代表一个人的姓名和年龄: David:43 John:10 Wilson:23 George:59 Pat:3 Tom:52 Sydney:32 Mohammed:72 Jay:34 Adam:18 我们称之为ArrayList“people” 它们都在我的ArrayList中。我可以通过使用 Integer.parseInt(people.get(index).split(":")[1]); 但我想对ArrayList进行排序,以打
David:43
John:10
Wilson:23
George:59
Pat:3
Tom:52
Sydney:32
Mohammed:72
Jay:34
Adam:18
我们称之为ArrayList“people”
它们都在我的ArrayList中。我可以通过使用
Integer.parseInt(people.get(index).split(":")[1]);
但我想对ArrayList进行排序,以打印出从最高年龄到最低年龄的人。我想知道是否有办法做到这一点。如果有,有没有更有效的方法 有一个更高效、易读和可扩展的选项。使用对象。Java是一种OO语言,
Person
对象存储name
和age
并实现Comparable
以允许对象之间的比较,从而完美地解决了您的问题。使用CompareTo
方法定义应如何比较对象。例如:
public class Person implements Comparable<Person> {
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String name;
public int age;
@Override
public int compareTo(Person other){
return (age - other.age);
}
}
有一个更高效、更清晰、更可扩展的选项。使用对象。Java是一种OO语言,
Person
对象存储name
和age
并实现Comparable
以允许对象之间的比较,从而完美地解决了您的问题。使用CompareTo
方法定义应如何比较对象。例如:
public class Person implements Comparable<Person> {
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String name;
public int age;
@Override
public int compareTo(Person other){
return (age - other.age);
}
}
将
Collections.sort()
与执行年龄分析的比较器一起使用。将Collections.sort()
与执行年龄分析的比较器一起使用。感谢您的快速回复!看起来正是我要找的!我会试试看,谢谢@David很乐意帮助Hey@nhouser9,它非常有效,只有一个问题。它从最低到最高打印。有没有办法改变这一点?编辑:我设法解决了这个问题,这里有一个简单的解决方案,适用于任何遇到这个问题的人:Collections.sort(people,Collections.reverseOrder())@David是的,您可以简单地将compare更改为带有任何自定义逻辑的方法。要从最高到最低,请更改减法的顺序。您甚至可以使用返回name.compareTo(other.name)
按名称排序。与元素顺序相关的所有内容都可以通过比较这些元素的方式来控制。感谢您的快速回复!看起来正是我要找的!我会试试看,谢谢@David很乐意帮助Hey@nhouser9,它非常有效,只有一个问题。它从最低到最高打印。有没有办法改变这一点?编辑:我设法解决了这个问题,这里有一个简单的解决方案,适用于任何遇到这个问题的人:Collections.sort(people,Collections.reverseOrder())@David是的,您可以简单地将compare更改为带有任何自定义逻辑的方法。要从最高到最低,请更改减法的顺序。您甚至可以使用返回name.compareTo(other.name)
按名称排序。与元素顺序相关的一切都可以通过比较这些元素的方式来控制。