我一直在解决这个问题。但是,我的数据排列方式略有不同。
无需讨论如何检索数据,只需说结果数组如下所示
String[2][]
[0] = String[4]
[1] = String[4]
实际数据,则如下
data = String[2][]
data[0]
data[0][0] = "Columbia"
data[0][1] = "Chile"
data[0][2] = "Asia"
data[0][3] = "US"
data[1]
data[1][0] = "B216"
data[1][1] = "B217"
data[1][2] = "A442"
data[1][3] = "N665"
我想按字母顺序按 data[0] 对整个数组进行排序。然而,我意识到引用的 SO 问题中提供的解决方案正在使用不同的数组格式。
我的预期结果看起来像
data = String[2][]
data[0]
data[0][0] = "Asia"
data[0][1] = "Chile"
data[0][2] = "Columbia"
data[0][3] = "US"
data[1]
data[1][0] = "A442"
data[1][1] = "B217"
data[1][2] = "B216"
data[1][3] = "N665"
我不完全确定如何在不迭代每个元素并将它们转移到新数组的情况下获得这些结果。
有任何想法吗?
解决方案
接受 Socowi 和 Stephen P 的建议并同时对多个数组进行排序,我想出了以下解决方案
当我将此数据返回到 JSP 以填充下拉列表时,我为模型添加了一个类并遍历数组,将模型类的新实例添加到数组列表
for (int i = 0; i < data[0].length; i++) {
dataList.add(new LocationModel(data[0][i], data[1][i].trim()));
}
模型类实现了 Comparable 并覆盖了 compareTo 方法
public class LocationModel implements Comparable<LocationModel> {
...
@Override
public int compareTo(LocationModel other) {
return this.locName.compareToIgnoreCase(other.getLocName());
}
}
然后我简单地对数组列表进行排序
Collections.sort(dataList);
这已经解决了我的问题。
感谢大家的帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句