import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class DataField {
    private String name;
    private String dataLevel;
    public DataField(String name, String dataLevel) {
        this.name = name;
        this.dataLevel = dataLevel;
    }
    public String getName() {
        return name;
    }
    public String getDataLevel() {
        return dataLevel;
    }
    @Override
    public String toString() {
        return "DataField{" +
                "name='" + name + '\'' +
                ", dataLevel='" + dataLevel + '\'' +
                '}';
    }
}
public class Main {
    public static void main(String[] args) {
        List<DataField> dataFields = new ArrayList<>();
        dataFields.add(new DataField("userId", "其他"));
        dataFields.add(new DataField("userName", "2级"));
        dataFields.add(new DataField("password", "4级"));
        dataFields.add(new DataField("email", "1级"));
        dataFields.add(new DataField("phone", "3级"));
        // 定义优先级
        java.util.Map<String, Integer> priorityMap = new java.util.HashMap<>();
        priorityMap.put("4级", 4);
        priorityMap.put("3级", 3);
        priorityMap.put("2级", 2);
        priorityMap.put("1级", 1);
        priorityMap.put("其他", 0);
        // 使用Comparator进行排序
        Collections.sort(dataFields, new Comparator<DataField>() {
            @Override
            public int compare(DataField df1, DataField df2) {
             if (priorityMap.get(df2.getDataLevel()) == null || priorityMap.get(df1.getDataLevel()) == null) {
                            return 0;
                        }
                return priorityMap.get(df2.getDataLevel()) - priorityMap.get(df1.getDataLevel());
            }
        });
        // 输出排序后的结果
        for (DataField df : dataFields) {
            System.out.println(df);
        }
    }
}
- 
DataField 类:表示每个字段的信息,包含字段名称 (
name) 和数据定级 (dataLevel)。 - 
priorityMap:定义了一个优先级映射,将每个数据定级映射到一个整数,表示其优先级。
 - 
Comparator:使用
Collections.sort方法对dataFields列表进行排序。排序规则是根据dataLevel的优先级从高到低排序。 - 
输出结果:排序后,最高级别的字段会排在列表的第一个位置。
 
输出:
DataField{name='password', dataLevel='4级'}
DataField{name='phone', dataLevel='3级'}
DataField{name='userName', dataLevel='2级'}
DataField{name='email', dataLevel='1级'}
DataField{name='userId', dataLevel='其他'}
在这个例子中,password 字段的数据定级是 4级,因此它被排在了第一个位置。