首页 > 解决方案 > 根据元素的第一次出现对列表进行排序

问题描述

我有一个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 个元素,所以轻量级的东西是首选,但我不太清楚一种方法。

标签: javalistsorting

解决方案


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);

Demo


推荐阅读