0

私はアンドロイドでプロジェクトを開発しています。String 型の 5 つの配列があり、配列内の各項目は残りの配列のそれぞれのインデックスに関連付けられています。ここでは、単一の配列をソートする必要があります。ソートすると、ソートされた配列に存在していたように、それぞれのすべてのインデックスが適切な順序で複製されるはずです。

ソースコード:

array1 = new String[qrcodelist.size()];
array2 = new String[name.size()];
array3 = new String[company.size()];
array4 = new String[date.size()];
array5 = new String[imageurl.size()];


for (int i = 0; i < name.size(); i++) {
    array1[i] = qrcodelist.get(i);
    array2[i] = name.get(i);
    array3[i] = company.get(i);
    array4[i] = date.get(i);
    array5[i] = imageurl.get(i);

}

私は同じことを実装することを考えましたHashMapが、それを行う方法がわかりませんでした。

このタスクを実装するためのロジックまたはサンプル コードを教えてください。

4

4 に答える 4

2

データ構造を見直すことをお勧めします。つまり、データを別々の配列に分割するのは良い考えではないようです。関連するすべてのデータを 1 つのオブジェクトに含める必要があります。

この質問を確認してください: Java で複数の配列をソートする方法

于 2012-08-30T09:27:44.330 に答える
2

あなたは「オブジェクト拒否」に苦しんでいるように思えます。あなたの説明はあまり明確ではありませんが、「QR コード」、「名前」などのフィールドを持つクラスが必要なようです。それを取得すると、5 ではなく、そのクラスのインスタンスでいっぱいの単一の配列ができます。別々の配列。

これで、 a を使用して配列を並べ替え、Comparator必要な順序を付けることができます。

于 2012-08-30T09:27:46.847 に答える
0

オブジェクトを使用して、各エンティティに対応するすべてのデータを格納し、各オブジェクトを Collection または Array に入れてから、 Comparable インターフェイスを実装して並べ替える必要があります。

public class MyData implements Comparable<MyData> {

private String qrcodelist;
private String  name;
private String  company;
private String  date;
private String  imageurl;

//more code...
}
于 2012-08-30T09:38:14.407 に答える
0

私が理解していることから、配列をソートしたいだけだと思います。次回はそれを検索してください。ここに良い例があります: Android ソート配列

この件についてさらに理解を深めるために、java sort array comparison などの単語を検索してください。

于 2012-08-30T09:22:35.250 に答える