使用java根据静态映射中提到的顺序进行排序

使用java根据静态映射中提到的顺序进行排序,java,algorithm,sorting,data-structures,java-8,Java,Algorithm,Sorting,Data Structures,Java 8,如何根据静态映射中提到的顺序对字符串列表进行排序,该静态映射将列表项作为键 列表={“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); ma

如何根据静态映射中提到的顺序对字符串列表进行排序,该静态映射将列表项作为键

列表={“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);

} 
staticmap=newlinkedhashmap();
静止的{
地图.put(O,1);;
地图.put(U,2);;
地图放置(“A1”,3);
地图(I,4);;
地图.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]
}
staticmap=newlinkedhashmap();
静止的{
地图.put(O,1);;
地图.put(U,2);;
地图放置(“A1”,3);
地图(I,4);;
地图.put(“AU”,5);
}
公共静态void main(字符串[]args){
列表=新的数组列表(列表中的“AU”、“I”、“U”、“O”、“A1”);
list.sort(Comparator.comparing(a->map.get(a));
System.out.println(列表);//[O,U,A1,I,AU]
}