排序列表只比较初始列表内对象列表中的第一个字符串。

问题描述 投票:0回答:1

我有一个myDto对象的列表

public class myDto {

    private String requestId;
    private List<Dogs> dogs;

}

我可以通过比较requestIds来对列表进行排序。

myDtoList.sort(Comparator.comparing(f -> f.getRequestId));

如果Dog对象看起来像这样

public class Dog {

    private String name;    
}

我是否可以以及如何对初始列表进行排序,只比较每个狗的列表中的第一项?所以不管列表中的狗有多少,只比较每个myDto对象中的第一条狗条目。条目1有一只名叫 "Zoro "的狗,它在众多狗的列表中排在第一位,条目2有一只名叫 "Fancy "的狗,它在众多狗的列表中排在第一位,条目3有一只名叫 "Ann "的狗,它在众多狗的列表中排在第一位。排序后,它们将恢复到--条目3,条目2,条目1。

java spring stream
1个回答
1
投票

我想你可以通过以下方式获得第一个项目的名称。getDogs().get(0).getName(). 如果允许列表为空,你可以执行以下操作。

getDogs() != null && getDogs().size() > 0 ? getDogs().get(0).getName() : null;

用这个代替getRequestId()。

© www.soinside.com 2019 - 2024. All rights reserved.