我要做的是按照项目在 XML 文件中的顺序对 Java 列表或映射进行排序。
例如
我有一个函数名称列表:
- 功能一
- 功能三
- 功能二
XML 文件如下所示:
<xml>
<function>functionOne</function>
<function>functionTwo</function>
<function>functionThree</function>
</xml>
所以我想对列表进行排序,使函数名称如下:
- 功能一
- 功能二
- 功能三
现在我也尝试对变量执行此操作,因此大约有 500 多个独特的“项目”。
有人知道我该怎么做吗?现在,对于确定排序顺序的文件不必是 XML,它只是我最常用的文件,它可以是任何可以完成工作的文件。
提前感谢您的宝贵时间。
最佳答案
首先,解析XML文件构建一个Map<String,Integer>
它将名称映射到它们的顺序位置。
然后,您需要一个自定义比较器:
public class XMLComparator implements Comparator<String> {
private Map<String,Integer> order;
public XMLComparator(Map<String,Integer> desiredOrder) {
order = desiredOrder;
}
public void compare(String s1, String s2) {
return order.get(s1) - order.get(s2);
}
}
然后将其应用于您的变量名称列表:
Collections.sort(variableNames, new XMLComparator(previouslyCreatedMap));
可能有一些边缘情况需要处理,但这是一般的想法。
关于java - 按项目在 XML 文件中的顺序对 Java List/Map 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4515014/