我有 2 个 Java 数据数组。根据第一个数组的顺序,我必须对下一个数组进行排序。 例如 -
String[] Array1 = {"EUROPE","MIDDLEEAST","OTHERs","AUSTRALIA"};
String[] Array2 = {"MIDDLEEAST","EUROPE","AUSTRALIA","OTHERs","ASIA","EUROPE"};
我的输出应该是这样的:
{"EUROPE","EUROPE","MIDDLEEAST","OTHERs","AUSTRALIA","ASIA"}
最好的方法是什么?
最佳答案
要排序,您需要定义一个排序顺序,以便给定元素 A 和 B,您可以轻松确定 A 应该排在排序列表中的 B 之前还是之后。
这个概念是用 Comparator
的概念形式化的在 Java 中。
在这种情况下,排序顺序由列表中元素的顺序定义。最简单的方法是给定 A 和 B,在原始列表中找到它们中的每一个,记下找到的索引,并比较索引以找出哪个先出现。
根据您的数据大小,这可能会太慢。然后您可以创建一个 HashMap<String,Long>
它保存给定字符串在 Array1 中的索引。这里它将包含“DEF”->0、“ABC”->1、“XYZ”->2。
关于java - java比较和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8922610/