我已经合并了上面的列表,但需要根据 id 参数对其进行排序。我该如何以最简单且最佳的方式做到这一点? 我最初合并了一组 2 个用户,现在我想根据他们的 ID 对他们进行排序,然后显示结果。有任何想法吗?
import java.io.*;
import java.util.*;
/*
* To execute Java, please define "static void main" on a class
* named Solution.
*
* If you need more classes, simply define them inline.
*/
class Employee {
public String name;
public int id;
Employee(String name, int id) {
this.name = name;
this.id = id;
}
public String toString() {
return "<name: " + this.name + ", id: " + this.id + ">";
}
}
class Person {
public String name;
public int id;
Person(String name, int id) {
this.name = name;
this.id = id;
}
public String toString() {
return "<name: " + this.name + ", id: " + this.id + ">";
}
}
public class Solution {
public static void main(String[] args) {
List<Employee> employee = generateEmployees();
List<Person> persons = generatePersons();
ArrayList<Object> merged = new ArrayList<Object>(employee);
merged.addAll(person);
System.out.println("merged:"+merged +"\n");
for(int i=0;i<users.size();i++){
if(person.get(i).id<=5){
System.out.println("UserName:"+person.get(i).name+"\n");
}
}
for(int i=0;i<employee.size();i++){
if(employee.get(i).id<=5){
System.out.println("DesignerName:"+employee.get(i).name+"\n");
}
}
});
}
提前致谢! 我在网上查看了几种排序方法,但无法弄清楚哪种方法是最好的使用方法。只想在排序后显示结果
最佳答案
User
和 Designer
必须从同一个类扩展。 (或设计器扩展用户
)。
然后创建一个比较器 ( javadoc ) 并使用 merged.sort (myComparator)
( javadoc )
[编辑]
class MyComparator implements Comparator<User> {
@Override
public int compare(User o1, User o2) {
return Integer.compare(o1.id, o2.id);
}
}
public class User {
public String name;
public int id;
User(String name, int id) {
this.name = name;
this.id = id;
}
public String toString() {
return "<name: " + this.name + ", id: " + this.id + ">";
}
}
public class Designer extends User{
Designer(String enter code herename, int id) {
super(name, id);
}
}
public class Solution {
public static void main(String[] args) {
...
ArrayList<User> merged = new ArrayList<User>(designers);
merged.addAll(users);
merged.sort(new MyComparator());
...
}
}
关于java - 如何按已合并的 2 个列表的 id 对元素进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52780934/