我需要你的帮助跟踪查询。鉴于以下清单:
["2XL", "3XL", "4XL", "5XL", "6XL", "L", "M", "S", "XL"]
我怎样才能把它按这个顺序分类呢?
"S“、"M”、"L“、"XL”、“2 XL”、“3 XL”、“4 XL”、“5 XL”、“6 XL”
请注意,每个大小并不总是存在的。
发布于 2018-01-17 12:07:21
另一种方式可能是:
List<String> desiredOrder = Arrays.asList("S", "M", "L", "XL", "2XL", "3XL", "4XL", "5XL", "6XL");
String [] array = new String[desiredOrder.size()];
list.forEach(s->{
if (desiredOrder.indexOf(s) != -1)
array[desiredOrder.indexOf(s)] = s;
});
List<String> set= Stream.of(array).filter(Objects::nonNull).collect(Collectors.toList());
或
Set<Integer> integers = new HashSet<>();
list.forEach(s -> {
if (desiredOrder.indexOf(s) != -1) {
integers.add(desiredOrder.indexOf(s));
}
});
List<String> sortedItems = integers.stream()
.sorted()
.map(i->desiredOrder.get(i))
.collect(Collectors.toList());
https://stackoverflow.com/questions/48298432
复制相似问题