您可以使用树形图:
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
。然后,它将能够为每个值添加两个以上的城市。