★★Java質問・相談スレッド175★★ [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0253デフォルトの名無しさん
2015/11/21(土) 01:04:41.40ID:ZYL4H3PD> c++とかならpairをいれた配列をソートすればいいんですが
Javaでも同じ
static class Pair {
final double first;
final int second;
Pair(double first, int second) { this.first = first; this.second = second; }
}
public static void main(String[] args) {
double[] a = {2.0, 1.2, 8.5, 1.2};
int[] b = {1, 2, 3, 4};
ArrayList<Pair> list = new ArrayList<>();
for (int i = 0; i < a.length; i++) list.add(new Pair(a[i], b[i]));
Collections.sort(list, new Comparator<Pair>() {
public int compare(Pair a, Pair b) { return a.first == b.first ? 0 : (a.first < b.first ? -1 : 1 ); }
});
for (Pair p : list) System.out.println(p.second); //=> 2 4 1 3
}
標準でPairがないので、自分で作るか、Androidならandroid.util.Pair,
commons-langが使えるならorg.apache.commons.lang3.tuple.Pair
■ このスレッドは過去ログ倉庫に格納されています