java - 如何根据卡片类型重新排列arraylist中的对象
问题描述
我有一个场景,我必须以特定顺序重新排列银行名称的元素。此列表可以按任何顺序排列 [Wellsfargo、Bank of America、Chase、Citi、American Express],并且列表中可能没有一家或多家银行。我试图想出逻辑来重新排列这个顺序。[大通、花旗、美国银行、富国银行、美国运通]
任何帮助是极大的赞赏
解决方案
正如评论中所注意到的,您可以sort
使用自定义Comparator
比较元素的indexOf
aList
与所需的顺序:
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]
推荐阅读
- java - JavaFX - 将 StringBuilder 与 String 进行比较
- rpmbuild - 从其最新源构建keepalived rpm
- python - Python“损坏”下载的pdf文件
- python - Matplotlib 以 1 小时为间隔绘制 24 小时图
- javascript - 如何使它只执行一次 keyup
- python - Rasa NLU:置信度计算
- swift - 如何在苹果WatchKit应用程序的后退按钮上快速添加自定义操作?
- javascript - API 17:操作栏已实现但未出现 - Android Studio
- android - 在 Android 应用程序中存储机密和凭据
- cqrs - 事件存储和乐观并发