文字列配列の順序に基づいてArrayListを並べ替える-Java

ジョセフG

1つの配列リストと1つの文字列配列があります。文字列配列にはIDが含まれ、配列リストにはIDとそれらのIDに関連する情報が含まれます。このArrayListは望ましくない順序になっています。ArrayListに含めるIDの文字列配列があります。

セミ擬似コードの例:

ArrayList<MyObject> myList = new ArrayList<MyObject>();
for (every username)
{
    myList.add(new MyObject(id, username, content, country);
}

String[] ids = new String[myList.size()];
...Ids are added and sorted here...

これで、IDのリストが正しい順序で表示されます。「myList」の各IDは、「ids」文字列配列のIDに対応します。「ids」文字列配列内の対応するIDの順序に基づいて「myList」を並べ替えたいと思います。

このような方法でArrayListを並べ替えるにはどうすればよいですか?

Eg. if in Array list I have:

1. 123, Bob, test, USA
2. 1234, Vladimir, test, USA
3. 12345, Yoseph, test, USA

and in the String[] I have:

1. 1234
2. 123
3.12345

文字列配列のIDに基づいてArrayListを並べ替えると、次のようになります。

1. 1234, Vladimir, test, USA
2. 123, Bob, test, USA
3. 12345, Yoseph, test, USA
icza

1つの解決策は、ids配列を反復処理し、オブジェクトでid配列内の現在の値を検索することです最終的な(望ましい)位置がわかっています。これは配列内のインデックスであるため(リストを配列と同じように並べ替える必要があるため)、この要素をリスト内の最後の場所に移動できます(これは次のように交換します)。要素は、現在配列内にある位置にあります)。

for (int i = ids.length - 1; i > 0; i--) { // Downward for efficiency
    final String id = ids[i];
    // Big optimization: we don't have to search the full list as the part
    // before i is already sorted and object for id can only be on the remaining
    for (int j = i; j >= 0; j--) // NOTE: loop starting at i
        if (id.equals(myList.get(j).getId()) {
            Collections.swap(myList, j, i);
            break;
        }
}

注:他のすべての要素が配置されている場合、最後の要素も(その)位置にあるためforループは最後の要素(i==0)を省略します。

これは、コンパレータを作成して並べ替えアルゴリズムを使用するよりもはるかに高速です(Collections.sort()たとえば、要素の順序はすでにわかっており(ids配列によって定義されます)、並べ替えアルゴリズムは(アルゴリズムがどれほど賢くても)[less | equals | greater]コンパレータから返される情報

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaは、順序値に基づいて文字列配列を並べ替える方法を教えてくれましたか?

分類Dev

Javaで他の配列の値に基づいて1つの配列を並べ替える方法は?

分類Dev

2つの列の値に基づいてJavaで2D配列を並べ替える方法

分類Dev

文字の繰り返し回数に基づいて、Javaを使用して文字列を降順で並べ替える

分類Dev

Arraylist内の配列をJavaの逆順で並べ替える

分類Dev

Java Spark2.1.1のフィールド名に基づいてstructTypeを順序付け/並べ替える方法

分類Dev

Javaを使用して部分文字列に基づいてファイルを並べ替える

分類Dev

特定の列に基づいて配列要素の順序を変更するJava

分類Dev

Javaのdouble値に基づいて文字列のリストを並べ替えます

分類Dev

Javaで最も頻繁に使用される文字の順序で文字列のリストを並べ替える

分類Dev

別の文字列の順序に基づいて文字列を並べ替える

分類Dev

Java:大文字と小文字を区別せず、末尾に任意の数の文字列を使用してArrayListをアルファベット順に並べ替える方法

分類Dev

Javaを使用して文字列配列を並べ替える

分類Dev

別の配列に基づいて複数の配列を並べ替える並べ替え順序

分類Dev

別の配列の並べ替え順序に基づいて配列を並べ替える

分類Dev

Javaを使用して配列を逆順に並べ替える方法は?

分類Dev

Javaで文字列の配列を並べ替える

分類Dev

Java:数値文字列の配列を並べ替える

分類Dev

Java:フロートの配列を逆順に並べ替える方法は?

分類Dev

Javaで文字列の配列をアルファベット順に並べ替えるにはどうすればよいですか?

分類Dev

カスタムの並べ替え順序配列に基づいて JSON を並べ替える

分類Dev

Javaの複数の列の値に従って配列を並べ替える

分類Dev

Javaの定義済み関数を使用せずに、長さに基づいて文字列要素を並べ替えますか?

分類Dev

別の配列の順序に基づいて配列の配列を並べ替える(Ruby)

分類Dev

別の配列の順序に基づいて配列の配列を並べ替える

分類Dev

Java文字列arrayList:要素を降順で並べ替えます(数学の多項式のように)

分類Dev

式の作成配列の順序に基づいて並べ替える

分類Dev

Javaで列ごと(昇順)に従って2D配列を並べ替える方法

分類Dev

Javaの各要素の最初の部分で文字列配列を並べ替える

Related 関連記事

  1. 1

    Javaは、順序値に基づいて文字列配列を並べ替える方法を教えてくれましたか?

  2. 2

    Javaで他の配列の値に基づいて1つの配列を並べ替える方法は?

  3. 3

    2つの列の値に基づいてJavaで2D配列を並べ替える方法

  4. 4

    文字の繰り返し回数に基づいて、Javaを使用して文字列を降順で並べ替える

  5. 5

    Arraylist内の配列をJavaの逆順で並べ替える

  6. 6

    Java Spark2.1.1のフィールド名に基づいてstructTypeを順序付け/並べ替える方法

  7. 7

    Javaを使用して部分文字列に基づいてファイルを並べ替える

  8. 8

    特定の列に基づいて配列要素の順序を変更するJava

  9. 9

    Javaのdouble値に基づいて文字列のリストを並べ替えます

  10. 10

    Javaで最も頻繁に使用される文字の順序で文字列のリストを並べ替える

  11. 11

    別の文字列の順序に基づいて文字列を並べ替える

  12. 12

    Java:大文字と小文字を区別せず、末尾に任意の数の文字列を使用してArrayListをアルファベット順に並べ替える方法

  13. 13

    Javaを使用して文字列配列を並べ替える

  14. 14

    別の配列に基づいて複数の配列を並べ替える並べ替え順序

  15. 15

    別の配列の並べ替え順序に基づいて配列を並べ替える

  16. 16

    Javaを使用して配列を逆順に並べ替える方法は?

  17. 17

    Javaで文字列の配列を並べ替える

  18. 18

    Java:数値文字列の配列を並べ替える

  19. 19

    Java:フロートの配列を逆順に並べ替える方法は?

  20. 20

    Javaで文字列の配列をアルファベット順に並べ替えるにはどうすればよいですか?

  21. 21

    カスタムの並べ替え順序配列に基づいて JSON を並べ替える

  22. 22

    Javaの複数の列の値に従って配列を並べ替える

  23. 23

    Javaの定義済み関数を使用せずに、長さに基づいて文字列要素を並べ替えますか?

  24. 24

    別の配列の順序に基づいて配列の配列を並べ替える(Ruby)

  25. 25

    別の配列の順序に基づいて配列の配列を並べ替える

  26. 26

    Java文字列arrayList:要素を降順で並べ替えます(数学の多項式のように)

  27. 27

    式の作成配列の順序に基づいて並べ替える

  28. 28

    Javaで列ごと(昇順)に従って2D配列を並べ替える方法

  29. 29

    Javaの各要素の最初の部分で文字列配列を並べ替える

ホットタグ

アーカイブ