gpt4 book ai didi

java - 对两个平行数组进行排序

转载 作者:搜寻专家 更新时间:2023-11-01 04:05:36 24 4
gpt4 key购买 nike

我有两个数组,一个存储城市的距离,另一个存储相应的人口。如果城市的距离按升序排列,一切正常。但是假设有人随机输入距离。如何对城市数组进行排序,并确保相应城市的人口与其相应城市人口的索引处于同一索引中。

例如:

  • 城市 1 有人口 333
  • 城市 3 有人口 33333
  • 城市 5 有人口 33
int[] city = {1, 3, 5};
int[] pop = {333, 33333, 33};

一切正常,因为城市数组已经排序。

但是当我输入时:

int[] city = {3, 1, 5};
int[] pop = {3333, 333, 33};

大问题!

我想对数组 city 进行排序,并确保 population 数组的所有元素都位于与其各自城市相同的索引处。

最佳答案

这样做的好方法是使用城市类:

class City{
private int id;
private long population;

//... getters, setters, etc
}

城市比较类:

class CityPopulationComparator implements Comparator<City> {
@Override
public int compare(City c1, City c2) {
return Long.compare(c1.getPopulation(), c2.getPopulation());
}
}

和一个城市数组列表:

ArrayList<City> cities;

最后使用以下方式对其进行排序:

Collections.sort(cities, new CityPopulationComparator());

但是如果您需要以这种方式拥有您的城市和人口,您可以自己编写一个排序方法(例如冒泡排序),并且每当您交换两个城市时,也交换相应的人口。

关于java - 对两个平行数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36440502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com