我有一个场景,我必须按特定顺序重新排列银行名称的元素。 此列表可以按任何顺序排列 [Wellsfargo、Bank of America、Chase、Citi、American Express],并且列表中可能没有一家或多家银行。 我试图想出逻辑来重新排列到这个顺序。 [大通、花旗、美国银行、富国银行、美国运通]
任何帮助都非常感谢
如注释中所述,您可以使用自定义Comparator
sort
元素indexOf
具有所需顺序的List
:
private static final List<String> ORDER_LIST = List.of("Chase", "Citi", "Bank Of America", "Wellsfargo", "American Express");
public static List<String> sort(String... names) {
return Stream.of(names)
.sorted(Comparator.comparingInt(ORDER_LIST::indexOf))
.collect(Collectors.toList());
}
然后你可以做:
List<String> names = sort("American Express", "Citi", "Chase");
System.out.println(names);
输出:
[Chase, Citi, American Express]