web-dev-qa-db-ja.com

文字列配列のArrayList

私はこのようなことをしたいと思います:

private ArrayList<String[]> addresses = new ArrayList<String[3]>();

これは機能しないようです。個別のクラスを作成せずに、配列にアドレスごとに3つのフィールドを持つ複数のアドレスを保存する最も簡単な方法は何ですか?

26
Johan

プリミティブ配列ではなく、3つの文字列に対して2番目のArrayListを使用します。すなわち。
private List<List<String>> addresses = new ArrayList<List<String>>();

その後、次のことができます。

ArrayList<String> singleAddress = new ArrayList<String>();
singleAddress.add("17 Fake Street");
singleAddress.add("Phoney town");
singleAddress.add("Makebelieveland");

addresses.add(singleAddress);

(ここで型消去を行うと、奇妙なことが起こると思いますが、ここでは重要ではないと思います)

プリミティブ配列を使用するのが難しい場合は、サンプルを機能させるためにわずかな変更のみが必要です。他の回答で説明したように、配列のサイズを宣言に含めることはできません。だから変更:

private ArrayList<String[]> addresses = new ArrayList<String[3]>();

private ArrayList<String[]> addresses = new ArrayList<String[]>();

動作します。

45
Grundlefleck
List<String[]> addresses = new ArrayList<String[]>();
String[] addressesArr  = new String[3];

addressesArr[0] = "zero";
addressesArr[1] = "one";
addressesArr[2] = "two";

addresses.add(addressesArr);
22
Upul Bandara

配列を使用しません。いくつかの理由で問題があり、特定の配列サイズの観点から宣言することはできません。試してください:

List<List<String>> addresses = new ArrayList<List<String>>();

しかし、正直に言うと、アドレスをモデル化するクラスを作成します。

配列を使用する場合、次のようになります。

List<String[]> addresses = new ArrayList<String[]>();

つまり、配列のサイズを宣言することはできません。

最後に、このようなインスタンスでは、型を具象型として宣言しないでください(つまり、addressesの場合)。上記で行ったように、インターフェースを使用します。これは、メンバー変数、戻り値の型、およびパラメーターの型に適用されます。

10
cletus

StringのArrayListを作成するためのシンプルで簡単な方法

    List<String> category = Arrays.asList("everton", "liverpool", "swansea", "chelsea");

乾杯

String配列に特定のサイズを強制することはできません。あなたはこれを行うことができます:

private List<String[]> addresses = new ArrayList<String[]>();

ただし、任意のサイズの配列をこのリストに追加できます。

ただし、他の人が述べたように、ここで行う正しいことは、アドレスを表す別のクラスを作成することです。次に、次のようなものがあります:

private List<Address> addresses = new ArrayList<Address>();
5
bruno conde
private List<String[]> addresses = new ArrayList<String[]>();

これは間違いなく動作します...

1
shaFayi

これを試して

ArrayList<ArrayList<String>> PriceModelList = new ArrayList<>();
    ArrayList<ArrayList<String>> PriceQtyList = new ArrayList<>();
    ArrayList<ArrayList<String>> PriceTotalList = new ArrayList<>();

    for (int i = 0; i < CustomerNames.length; i++) {
        PriceModelList.add(new ArrayList<String>());
        String[] PriceModel = {"s6", "s7", "note4", "note5", "j5", "j6"};
        for (int j = 0; j < PriceModel.length; j++) {
            PriceModelList.get(i).add(PriceModel[j]);
        }

        PriceQtyList.add(new ArrayList<String>());
        String[] PriceQut = {"12", "13", "21", "15", "43", "21"};
        for (int k = 0; k < PriceQut.length; k++) {
            PriceQtyList.get(i).add(PriceQut[k]);
        }

        PriceTotalList.add(new ArrayList<String>());
        String[] PriceTotal = {"1323", "1312321", "43123212", "43434", "12312", "43322"};
        for (int m = 0; m < PriceTotal.length; m++) {
            PriceTotalList.get(i).add(PriceTotal[m]);
        }
    }

    ArrayList<ArrayList<ArrayList<String>>> CustomersShoppingLists = new ArrayList<>();
    CustomersShoppingLists.add(PriceModelList);
    CustomersShoppingLists.add(PriceQtyList);
    CustomersShoppingLists.add(PriceTotalList);
1
A.G.THAMAYS

Java 8。

List<String[]> addresses = new ArrayList<>();