当前位置: 首页 > 知识库问答 >
问题:

在Java8上使用自定义条件排序对象列表[重复]

公孙联
2023-03-14

我有一个MyObject的列表

List<MyObject> myObjects;

其中MyObject是一个模型类,如下所示

public class MyObject{

private String fName;
private String lname;
private String code;

//getter setter

}
    null

共有1个答案

宇文航
2023-03-14

如果代码变量只能接受四个可能的值,则可以将它们保存在映射中,并在对列表排序时比较这些值:

public static void main(String[] args) {             
    List<MyObject> myObjects = new ArrayList<>();
    myObjects.add(new MyObject("fName1", "lname1", "ABC"));
    myObjects.add(new MyObject("fName2", "lname2", "PQR"));
    myObjects.add(new MyObject("fName3", "lname3", "XYZ"));
    myObjects.add(new MyObject("fName4", "lname4", "DEF"));

    Map<String,Integer> map = new HashMap<>();
    map.put("XYZ", 1);
    map.put("PQR", 2);
    map.put("ABC", 3);
    map.put("DEF", 4);

    Comparator<MyObject> sortByCode = (obj1,obj2)->Integer.compare(map.get(obj1.code), map.get(obj2.code));
    System.out.println("Before sorting");
    System.out.println(myObjects);

    System.out.println("After sorting");
    myObjects.sort(sortByCode);
    System.out.println(myObjects);
}
 类似资料:
  • 我有两个包含该类对象的列表: 我想通过学生比较一下那两个列表中的对象。我得比较一下列表然后得到下面的数据 我需要创建一个新列表,其中包含中存在但不在中的 对象 我需要创建一个新列表,其中包含那些对象,这些对象存在于中,但不存在于中 我需要创建一个新列表,其中包含使用java8流出现在两个列表中的对象 我尝试使用下面的代码 查找获得TC的学生(存在于列表1中但不存在于列表2中) 查找新的许可(存在于

  • 我有一个要求,我需要根据2个条件从另一个列表中创建一个对象列表。对象应处于会话中或处于活动状态。[这个问题与使用java8流从另一个对象创建对象列表有着模糊的联系 主要类别: 任何帮助都将不胜感激。

  • 要做到这一点,最干净的捷径是什么? 我知道它可以通过自定义比较器来实现。对于这种情况,难道没有现成的东西吗? 有点像这样:

  • 我有一个列表,像

  • 我的数据库中有一些虚拟数据。我试图执行mongodb聚合函数,以便根据给定的标题进行排序 到目前为止,我能够提出的查询是这个,下面是mongodb返回的内容。 db。测验聚合([{$unwind:“$fields”},{$match:{“fields.title”:“firstName”},{$sort:{“fields.value”:1}}}]) 但是,返回的数据集的结果应该包括字段列表中的其他

  • 我有一个学生班,它有相关部门的列表。 我正在尝试用Drools编写规则。规则就像-如果一个学生属于某些部门,那么就采取行动。我无法找出正确的方法来做这件事。我在下面写的一个不起作用。我知道如果它的字符串列表有效。有没有办法在自定义对象上做包含。 终止 调用规则的代码 我正在使用Drools 6.2版本。