java - 根据元素的第一次出现对列表进行排序
问题描述
我有一个List<Integer>
带有一组值的 Java,例如:
[0, 5, 2, 1, 3, 2, 6, 1, 1, 0, 10]
我想通过每个元素的第一次出现对列表进行排序,并使用以下新排序的列表:
[0, 0, 5, 2, 2, 1, 1, 1, 3, 6, 10]
我正在处理的List
将有最多 400-500 个元素,所以轻量级的东西是首选,但我不太清楚一种方法。
解决方案
indexOf
您可以使用(返回列表中元素的第一个索引)的结果直接排序。
List<Integer> list = Arrays.asList(0, 5, 2, 1, 3, 2, 6, 1, 1, 0, 10);
list.sort(Comparator.comparingInt(list::indexOf));
System.out.println(list);
推荐阅读
- scala - Spack 2.4.5 和 Scala 2.11 使用哪个版本的 Sbt 和 Sbt 程序集?
- kotlin - Kotlin 中的单例抽象类
- php - 如何通过href将Span id值传递到另一个页面
- installation - 高级安装程序如何检查安装目录是否为空
- c++ - 无法使用 Code::Blocks (20.03) 在 C++ 中构建 hello world,操作系统:Linux
- ios - 向 Xcode 项目添加“访问 wifi 信息功能”的问题
- c++ - 有很多成员的班级
- python - 在 groupby Python 之后查找配对记录
- firebase - 如何在颤振中使用 sharedPreference 以使用 setBool 和 GetBool 保持用户在颤振中登录
- permissions - 没有权限使用 psql 的 root