6

パラメータ入力の新しいエントリをリストに追加できるようにしたいと考えています。

例えば:

public static void theList (List<String> wholeList) {

    wholeList = new ArrayList<String>();
    wholeList.add("Lettuce");
    wholeList.add("Bacon");
    wholeList.add("Milk");

    wholeList.add(wholeList); <--------- error - addAll doesn't fix it.

上記では、「 wholeList.add(wholeList) 」を試しました。私が意図したことは次のとおりです。追加する必要がある追加の(このメソッドを実行するための入力を追加するときの(パラメーターからの)アイテム)アイテムは、「wholeList」に追加されます。

ご覧のとおり、レタス、ベーコン、ミルクの 3 つのアイテムがリストに追加されました。ただし、突然気が変わって (パラメーターを介して) 別の項目を追加したい場合は、単純に現在のリスト (wholeList) に追加できます。

また、別の質問です。

(同じリストのインポートを使用しながら) 1 つずつ追加するのではなく、アイテムのリストを追加するより適切な方法はありますか? {"レタス"、"牛乳"、"ベーコン" など} と言いますか?

TY.

4

3 に答える 3

9

私が理解しているように、addAll()必要なものはすべてです:

List<String> someList = new ArrayList<String>();
List<String> itemsToAdd = new ArrayList<String>();
itemsToAdd.add("one");
itemsToAdd.add("two");
someList.addAll(itemsToAdd);
// or use handy method which creates temporary list internally:
someList.addAll(Arrays.asList("three", "four"));
于 2013-03-17T12:25:44.590 に答える
4

さて、あなたのコードは何か非常に間違っています。メソッド内で wholeList を初期化し、メソッドが終了すると、それはなくなります (Java のポインター)。また、リスト自体を追加したため、コードはおそらくやりたいことではありません。

おそらく、メソッド内で新しいリストを作成し、すべての項目をパラメーターのリストに追加するつもりでした。その場合、パラメーターから取得したリストで「new」を使用しないでください。


実際、あなたの質問のタイトルを読んだ後、

  1. 既存のリストが必要です。パラメーターにリストの名前を指定することはできません。それを existingList と呼びましょう。
  2. メソッドでリストを取得した後は、パラメーターからリストが無効になるため、「新しい ArralyList」を使用しないでください。

コードは次のようになります。

 public static void theList (List<String> wholeList) {

    wholeList.add("Lettuce");
    wholeList.add("Bacon");
    wholeList.add("Milk");

    existingList.add(wholeList);
于 2013-03-17T12:23:05.823 に答える