java - 如何按已合并的 2 个列表的 id 对元素进行排序?

标签 java

我已经合并了上面的列表,但需要根据 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");
        }
      }

});

  }

提前致谢! 我在网上查看了几种排序方法,但无法弄清楚哪种方法是最好的使用方法。只想在排序后显示结果

最佳答案

UserDesigner 必须从同一个类扩展。 (或设计器扩展用户)。
然后创建一个比较器 ( 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/

相关文章:

java - 如何忽略已经访问过的域? java |汤普

java - Spring JDBC 一对一关系

java - JSP中request.getParameter返回null

java - Hibernate - 自动@ManyToMany 更新

Java安装错误: INSTALL_FAILED_MISSING_SHARED_LIBRARY maps

java - 字符串位于另一个字符串之上的 TextArea

java - 行首 (^) 和行尾 ($) 的正则表达式边界匹配器不起作用

java - 什么是 Java 静态的 Smalltalk 等价物?

java - 在 Heroku 上使用 Java 的 NodeJs 应用程序

java - 根据赋予工厂 bean 的属性创建一个 bean