Java:如何对两个对应的数组进行排序?

2024-04-04

我有两个数组:

First array:
25, 20, 50, 30, 12, 11...

Second Array: 
New York, New Jersey, Detroit, Atlanta, Chicago, Los Angeles

第二个数组中的每两个城市对应第一个数组中的一个值。

示例:纽约和新泽西对应于 25,底特律和亚特兰大对应于 20,依此类推。

我想按降序重新排序第一个数组的数字(50、30、25、20...),但我也希望第二个数组的城市相应地移动,以便它们在排序之前和之后具有相同的值。

我该如何完成这个任务? (我可以使用 ArrayList 或 Array,以更简单的为准)


您可以使用树形图:

Map<Integer, String[]> map = new TreeMap<>();
for(int i=0;i<firstArray.length;i++){
   map.put(firstArray[i], new String[]{secondArray[i * 2], secondArray[i*2+1]});
}

这张地图将按关键自然顺序排序。

但我建议你制作容器类。就像是:

public class CityPair{
  public int value;
  public String[] cities = new String[2]; 
}

现在您可以用您的数据填写列表:

...   
ArrayList list = new ArrayList<CityPair>();

for(int i=0; i<firstArray.length; i++){
  CityPair pair = new CityPair();
  pair.value = firstArray[i];
  pair.cities[0] = secondArray[i*2];
  pair.cities[1] = secondArray[i*2+1];
  list.add(pair);
}
...

正如您所看到的,我没有检查索引是否“索引越界”,但您应该检查。之后您可以对列表进行排序。您可以使用例如手动完成冒泡排序 https://en.wikipedia.org/wiki/Bubble_sort算法,但更好的方法是编写自定义比较器:

public class CityPairComparator implements Comparator<CityPair> {
    @Override
    public int compare(CityPair pair1, CityPair pair2) {
        return Integer.compare(pair1.value, pair2.value);
    }
}

现在您可以使用 Collections 实用程序类对列表进行排序:

Collections.sort(list, new CityPairComparator());

通过这种方法,您可以替换String[] cities in CityPair类为ArrayList<Sting> cities。然后,它将能够为每个值添加两个以上的城市。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java:如何对两个对应的数组进行排序? 的相关文章

  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • Android在排序列表时忽略大小写

    我有一个名为路径的列表 我目前正在使用以下代码对字符串进行排序 java util Collections sort path 这工作正常 它对我的 列表进行排序 但是它以不同的方式处理第一个字母的情况 即它用大写字母对列表进行排序 然后用
  • 当从服务类中调用时,Spring @Transactional 不适用于带注释的方法

    在下面的代码中 当方法内部 是从内部调用的方法外部 应该在交易范围内 但事实并非如此 但当方法内部 直接从调用我的控制器class 它受到事务的约束 有什么解释吗 这是控制器类 Controller public class MyContr
  • 如何模拟从抽象类继承的受保护子类方法?

    如何使用 Mockito 或 PowerMock 模拟由子类实现但从抽象超类继承的受保护方法 换句话说 我想在模拟 doSomethingElse 的同时测试 doSomething 方法 抽象超类 public abstract clas
  • 在 S3 中迭代对象时出现“ConnectionPoolTimeoutException”

    我已经使用 aws java API 一段时间了 没有遇到太多问题 目前我使用的是库 1 5 2 版本 当我使用以下代码迭代文件夹内的对象时 AmazonS3 s3 new AmazonS3Client new PropertiesCred
  • 使用 SQLITE 按最近的纬度和经度坐标排序

    我必须获得一个 SQLite SQL 语句 以便在给定初始位置的情况下按最近的纬度和经度坐标进行排序 这是我在 sqlite 数据库中的表的例句 SELECT id name lat lng FROM items EXAMPLE RESUL
  • 如何在 Java 中测试一个类是否正确实现了 Serialized(不仅仅是 Serialized 的实例)

    我正在实现一个可序列化的类 因此它是一个与 RMI 一起使用的值对象 但我需要测试一下 有没有办法轻松做到这一点 澄清 我正在实现该类 因此在类定义中添加 Serialized 很简单 我需要手动序列化 反序列化它以查看它是否有效 我找到了
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • react-native run-android 失败并出现错误:任务 ':app:dexDebug' 执行失败

    我使用的是 Windows 8 1 和react native cli 1 0 0 and react native 0 31 0 添加后react native maps对于该项目 我运行了命令react native upgrade并给
  • 编辑文件名在 JComboBox 中的显示方式,同时保持对文件的访问

    我对 Java 很陌生 对堆栈溢出也很陌生 我正在尝试利用 JMF API 创建一个用 Java 编码的简单媒体播放器 到目前为止 我已经能够设置一个简单的队列 播放列表来使用JComboBox called playListHolder
  • 如何在selenium服务器上提供自定义功能?

    我知道可以通过某种方法获得一些硒功能 其中之一如下 driver getCapabilities getBrowserName 它返回浏览器名称的值 但如果它指的是一个可用的方法 如果我没有误解的话 这似乎与自定义功能有关 就像我的意思是
  • Jersey 客户端请求中未设置 Content-Length-Header

    我正在使用 Jersey Client 访问网络服务 如下所示 response r accept MediaType TEXT PLAIN TYPE header content length 0 post String class 其中
  • 在 Spring 中重构这个的最佳方法?

    private final ExecutorService executorParsers Executors newFixedThreadPool 10 public void parse List
  • 如何在JSTL中调​​用java方法? [复制]

    这个问题在这里已经有答案了 这可能是重复的问题 我只想调用不是 getter 或 setter 方法的方法例如 xyz 类的 makeCall someObj stringvalue Java类 Class XYZ public Strin
  • 我可以创建自定义 java.* 包吗?

    我可以创建一个与预定义包同名的自己的包吗在Java中 比如java lang 如果是这样 结果会怎样 这难道不能让我访问该包的受保护的成员 如果不是 是什么阻止我这样做 No java lang被禁止 安全管理器不允许 自定义 类java
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • HQL Hibernate 内连接

    我怎样才能在 Hibernate 中编写这个 SQL 查询 我想使用 Hibernate 来创建查询 而不是创建数据库 SELECT FROM Employee e INNER JOIN Team t ON e Id team t Id t
  • Java中的Object类是什么?

    什么是或什么类型private Object obj Object http download oracle com javase 6 docs api java lang Object html是Java继承层次结构中每个类的最终祖先 从
  • 具有特定参数的 Spring AOP 切入点

    我需要创建一个我觉得很难描述的方面 所以让我指出一下想法 com x y 包 或任何子包 中的任何方法 一个方法参数是接口 javax portlet PortletRequest 的实现 该方法中可能有更多参数 它们可以是任何顺序 我需要
  • ServletContainer 类未找到异常

    我无法再编译我的球衣项目 并且出现以下异常 GRAVE Servlet Project API threw load exception java lang ClassNotFoundException com sun jersey spi

随机推荐

  • 基于 Symfony 2 的项目的安全性和登录

    我正在开发一个基于 Symfony 2 PHP 框架的 Web 应用程序 它有一个供注册用户使用的登录页面 我想为每个登录系统的用户执行一些自定义逻辑 基本上 我想在任何用户登录系统时进行记录 但我不想在主页的控制器上执行此操作 因为每次用
  • Mac OS X 10.6.7 Java 路径当前 JDK 令人困惑

    我无法理解 Mac OSX 上的多个 java 版本 实际路径与链接 通常在 Windows 中 如果我的机器上安装了多个版本 我可以选择我想要的版本的路径并使用它 但在 MAC OS X 中 我知道有一个叫做链接的东西被指向 Curren
  • .net 4.6框架已就地升级那么.net框架4.5在vs2015中如何工作?

    net 4 6框架已就地升级那么 net框架4 5在vs2015中如何工作 我只看到一个文件夹 v4 0 30319 dll 是如何存储的以及在哪里 NET Framework 4 5 是 4 0 的就地升级 4 5 1 是 4 5 的替代
  • 我可以在 Citrus 静态响应适配器负载中使用 Citrus 变量吗?

    我正在使用静态响应端点适配器返回从资源文件获取的模拟服务响应 private void setAdapterResponse StaticResponseEndpointAdapter adapter String response thr
  • 在 Python、MATLAB 等中使用 eval [重复]

    这个问题在这里已经有答案了 我确实知道不应该使用eval 出于所有显而易见的原因 性能 可维护性等 我的问题更多的是 它有合法用途吗 人们应该使用它而不是以另一种方式实现代码 由于它是用多种语言实现的 并且可能导致糟糕的编程风格 我认为它仍
  • 如何在 ggplot2 图例中使用下标 [R]

    我可以在 ggplot2 图例中使用下标吗 我懂了这个问题 https stackoverflow com questions 5293715 how to use greek symbols in ggplot2关于传说和其他地方的希腊字
  • wifi getLinkSpeed() 始终返回一个值

    我正在开发一个显示互联网速度的应用程序 喜欢 https play google com store apps details id netspeed pt https play google com store apps details
  • 同步获取 Android 上最后一个已知位置

    在 Android 上使用 LocationClient v2 API 获取最后已知位置的 正确 方法是什么 同步 manner UPDATE 这是我想出的最好的方法 它不是同步的 但它克服了处理问题的负担connect and onCon
  • 如何检查脏标志

    我想知道如果用户选择从页面导航 检查页面是否脏的最佳方法是什么 例如 有一个注册表单 用户输入他的所有信息 然后不小心点击了一个链接来进行导航 我在网上发现了这个 如果有人对任何表单输入值进行更改 它会检查页面是否脏
  • 将新的 GUID 插入 Visual Studio 2012

    是否可以创建代码片段或类似的内容来自动生成 GUID 并将其插入到 Visual Studio 2012 中的文本编辑器中 我经常需要生成新的 GUID 例如 WiX 安装程序 以及我们自己的内部框架 我曾经使用宏来执行这项工作 创建一个新
  • 在python中生成任意长度的数字升序列表

    我可以调用一个返回升序数字列表的函数吗 IE function 10 会回来 0 1 2 3 4 5 6 7 8 9 你要range https docs python org 3 library functions html func r
  • EF6(代码优先)、MVC、Unity 和没有存储库的服务层

    我的应用程序使用 SQL Server 2012 EF6 MVC 和 Web API 它还使用存储库和各种文件 例如 DatabaseFactory cs Disposable cs IDatabaseFactory cs IReposit
  • WPF 显示/隐藏带有触发器的控件

    我是 WPF 新手 我尝试创建 xaml 逻辑来根据 ViewModel 上的 AllowMiscTitle 值显示 隐藏控件 xaml 由两个字段组成 一个标准图块的组合框 先生 女士 其他 当选择 其他 时 我希望显示文本框 我创建了以
  • 如何从 Ubuntu 连接到 Windows SQL Server

    在过去的两天里 我一直在尝试连接到远程 Windows SQL 服务器 但没有明显成功 我正在尝试使用 python 连接pyodbc包裹 我尝试关注所有与此相关的博客文章 但运气不佳 我首先关注了that http onefinepub
  • JSON 解析后小部件未更新

    我有以下代码 Override public void onReceive Context context Intent intent super onReceive context intent if CLOCK WIDGET UPDAT
  • 更新条目而不更新时间戳

    我在 mysql 表中有一个属性为 ON UPDATE CURRENT TIMESTAMP 的时间戳 有没有办法在特殊情况下手动禁用更新时间戳 例如 更新条目以修改博客文章 但不重新日期 您可以在更新命令中手动将列的值设置为其当前值 UPD
  • cmake add_custom_command 具有多个输出文件的问题

    我注意到在使用 cmake 时存在一些潜在的不正确行为add custom command和多个输出文件 我已经能够将问题隔离到一个最小的示例 见下文 看来当我在我的中指定了两个输出文件时add custom command 在某些情况下
  • WPF 绑定属性 Path 和 XPath 是否互斥?

    假设我有一个UserControl whose DataContext被设置为一个具有XmlDataProvider财产 我想在控件的 XAML 中绑定到此属性 并指定一些 XPath 我试过这个
  • Telerik RadGrid - 如何设置插入时的默认数据?

    当我单击 添加记录 按钮时 我希望其中一列具有默认值 我如何在后面的代码中做到这一点 这是一个动态日期并且可以随时更改 如果该列不是GridTemplateColumn 您可以使用列的指定默认值DefaultInsertValue属性 像这
  • Java:如何对两个对应的数组进行排序?

    我有两个数组 First array 25 20 50 30 12 11 Second Array New York New Jersey Detroit Atlanta Chicago Los Angeles 第二个数组中的每两个城市对应