gpt4 book ai didi

java - 基于数组列表 d 对数组列表 a、b、c 进行排序

转载 作者:行者123 更新时间:2023-12-02 07:06:44 25 4
gpt4 key购买 nike

我需要根据另一个数组对几个 arraylist 进行排序,但真的不知道如何去做。我有列表距离,并使用集合对其进行排序。效果很好,但我想根据排序列表对其他列表进行排序。这就是我到目前为止所做的

private void sortList() {
List<Float> tempDistance = new ArrayList<Float>();
List<Float> tempmyLat = new ArrayList<Float>();
List<Float> tempmyAlt = new ArrayList<Float>();
List<Float> tempmyLng = new ArrayList<Float>();
ArrayList<HashMap<String, String>> tempplacesListItems = new ArrayList<HashMap<String, String>>();

tempDistance = Distance;
tempmyLat = myLat;
tempmyLng = myLng;
tempmyAlt = myAlt;
tempplacesListItems = placesListItems;

Collections.sort(tempDistance);

for (int i = 0; i < Distance.size(); i++) {
Log.d("sorted distance", "" + tempDistance.get(i));
for (int k = 0; k < tempDistance.size(); k++) {
if (Distance.get(i) == tempDistance.get(k)) {
tempplacesListItems.set(k, placesListItems.get(i));
tempmyLat.set(k, myLat.get(i));
tempmyLng.set(k, myLng.get(i));
tempmyAlt.set(k, myAlt.get(i));
}
}
}

myLat = tempmyLat;
myLng = tempmyLng;
myAlt = tempmyAlt;
placesListItems = tempplacesListItems;
}

最佳答案

  1. 将所有 4 个值放入自定义类中。
  2. 为该类实现 Comparable 接口(interface)。
  3. 根据您输入的列表创建该类的对象列表。
  4. 对对象列表进行排序。

例如:

private void sortList() {
List<MyTuple> tuples = new ArrayList<>();

for (int i = 0; i < Distance.size(); i++) {
tuples.add(new MyTuple(Distance.get(i), myLat.get(i),
myAlt.get(i), myLon.get(i)));
}

Collections.sort(tuples);

// do something with tuples
}

private class MyTuple implements Comparable<MyTuple> {
private float distance;
private float latitude;
private float longitude;
private float altitude;

public MyTuple(float distance, float altitude,
float latitude, float longitude) {
this.distance = distance;
this.latitude = latitude;
this.longitude = longitude;
this.altitude = altitude;
}

public int compareTo(MyTuple other) {
return Float.compare(this.distance, other.distance);
}
}

关于java - 基于数组列表 d 对数组列表 a、b、c 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16010222/

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