如何根据静态映射中提到的顺序对字符串列表进行排序,以列表项为键。
List={"AU","I","U", "O", "A1"}
需要使用下面的映射对上面的字符串列表进行排序,该映射具有等效的键和必须进行排序的顺序。
static Map<String, Integer> map= new LinkedHashMap<>() ;
static {
map.put("O",1);
map.put("U",2);
map.put("A1",3);
map.put("I",4);
map.put("AU",5);
}
如何做到这一点?
使用以下映射的自定义比较器:
static Map<String, Integer> map = new LinkedHashMap<>();
static {
map.put("O", 1);
map.put("U", 2);
map.put("A1", 3);
map.put("I", 4);
map.put("AU", 5);
}
public static void main(String[] args) {
List<String> list = new ArrayList<>(List.of("AU", "I", "U", "O", "A1"));
list.sort(Comparator.comparing(a -> map.get(a)));
System.out.println(list); // [O, U, A1, I, AU]
}