6

サイズの異なる 2 つの配列リストがあります。これから交換する方法:

ArrayList<String> s = new ArrayList<String>();
ArrayList<String> f = new ArrayList<String>();
        s.add("Nepal");
        s.add("Korea");
        s.add("Sri Lanka");
        s.add("India");
        s.add("Pakistan");
        s.add("China");
        s.add("Australia");
        s.add("Bhutan");

        f.add("London");
        f.add("New York");
        f.add("Mumbai");
        f.add("sydeny");
for(int i=0;i<s.size();i++){
           // Collections.copy(f, s);
            f.addAll(s);
            Log.d("TAG", "Sources---" + s.get(i));
           Log.d("TAG", "Dest---" + f.get(i));
        }

私はこれを両方試しました。既存の配列リストから追加またはコピーするだけです。私の目的は、元の配列を新しい配列リストに完全に置き換えることです。

4

4 に答える 4

15

clear()最初に実行してから実行することができますaddAll(s);

clear()の後、arraylist は空になります。

編集:

@Luggi がコメントしたように、clear()リストが大きい場合は適切なオプションではありません。代わりにf、コレクションをパラメーターとして新しい ArrayList への参照をポイントするだけです。例:

f = new ArrayList(s);
于 2013-06-28T04:33:29.820 に答える
2

ここにリンクの説明を入力してください ここにリンクの説明を入力してください これはさまざまな方法で行うことができます

  1. 最初にクリアしてからすべて追加

    f.clear();
    f.addAll(S);

  2. まず、すべての要素をあるリストから別のリストにコピーすると、両方のリストが同じになり、あるリストの操作が別のリストに反映されるようになり、次のように同じリストで両方を指すことができます

    f = s;

  3. すべての要素を新しいリストに追加して新しいリストを初期化する。

    f = 新しい ArrayList(s);

于 2013-06-28T04:35:31.703 に答える
1
    ArrayList<String> s = new ArrayList<String>();
    ArrayList<String> f = new ArrayList<String>();

    s.add("Nepal");
    s.add("Korea");
    s.add("Sri Lanka");
    s.add("India");
    s.add("Pakistan");
    s.add("China");
    s.add("Australia");
    s.add("Bhutan");

    f.add("London");
    f.add("New York");
    f.add("Mumbai");
    f.add("sydeny");

    f.clear();
    f.addAll(s);

f の要素を s に追加する場合は、次のように動作します

    s.addAll(f);

それで全部です。forコードでループを使用する理由

于 2013-06-28T04:36:14.380 に答える
1

これを試すことができます:

最初に から までのすべての要素を追加しsますf

f.addAll(s);

次に、fに存在する要素のみを保持しますs

f.retainAll(s);

于 2013-06-28T04:37:02.307 に答える