java - java比较和排序

标签 java sorting compare

我有 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/

相关文章:

java - 使用 Spring Boot 进行单元测试 Spring Batch 配置

java - 如何在 Java 中删除整数数组?

java - 如何更改另一个 java 类中的变量值?

c# - 比较同一列表中的多个项目

c++ - 有类似 "default comparator"的东西吗?

java - 试图从文件中读取以计算出平均值 - java

php - 如何将我的数组分成 3 个元素的组,按最后一个元素对它们进行排序并显示元素?

.net - 如何从 ASP.NET Web API 返回排序的字典

MySQL:如何像亚马逊一样通过 "New and Bestselling"获取?

java - 比较每个列表中每个索引的项目