package com.chinairi.kafka.datapush.utils;
import java.util.*;
public class CustomComparator implements Comparator<Map<String, Object>> {
private String key;
public CustomComparator(String key) {
this.key = key;
}
@Override
public int compare(Map<String, Object> map1, Map<String, Object> map2) {
Object value1 = map1.get(key);
Object value2 = map2.get(key);
List<Object> order = Arrays.asList("A", "B", "C");
int index1 = order.indexOf(value1);
int index2 = order.indexOf(value2);
if (index1 != -1 && index2 != -1) {
return Integer.compare(index1, index2);
} else if (index1 != -1) {
return -1;
} else if (index2 != -1) {
return 1;
} else {
return 0;
}
}
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("key", "B");
Map<String, Object> map2 = new HashMap<>();
map2.put("key", "A");
Map<String, Object> map3 = new HashMap<>();
map3.put("key", "C");
list.add(map1);
list.add(map2);
list.add(map3);
CustomComparator customComparator = new CustomComparator("key");
Collections.sort(list, customComparator);
for (Map<String, Object> map : list) {
System.out.println(map);
}
}
}