24

こんなことしたいArrayList<String<String>> mylist

どうすれば作成できますか?

外部リストと内部リストに追加するにはどうすればよいですか

内部リストを単純な配列リストに変換するにはどうすればよいですか?

4

6 に答える 6

25

あなたは一緒に行くことができます

List<List<String>> ls2d = new ArrayList<List<String>>();
List<String> x = new ArrayList<String>();
x.add("Hello");
x.add("world!");
ls2d.add(x);

System.out.println(Arrays.deepToString(ls2d.toArray()));
于 2012-05-26T16:59:58.327 に答える
12

最初の配列リストはStringの配列リストではなく、ArrayListのArrayListです。

ArrayList<ArrayList<String>>
于 2012-05-26T16:56:56.503 に答える
3
List<List<String>> array = new ArrayList<List<String>>();
...
array.add(new ArrayList<String>())
array.get(0).add("qqq");

array.get(0)-内部リストです

于 2012-05-26T16:59:03.493 に答える
3
List<List<String>> super2dArray = new ArrayList<ArrayList<String>>()

これは、文字列を保持する配列リストの配列リストです。

Stringはコレクション/リストではないので、ArrayList<String<String>> mylist意味がありませんが、あなたはそれを理解したと思います。しかし、将来の読者はそうではないかもしれません。

私が左側にいることを選んだ理由を確認するには、この回答を参照してください。List

于 2012-05-26T17:01:11.700 に答える
2

あなたが望むものを達成するための2つの方法があります。私は両方のコードスニペットを提供しています:

1.1。List<List<String>> lol = new ArrayList<List<String>>();

Scanner in = new Scanner(System.in);
int size = in.nextInt();

//Declare your two dimensional ArrayList of Strings. 
List< List<String>> lol = new ArrayList<List<String>>();

//Instantiate and Populate
for (int i=0;i<size;i++){
    int internalListSize = in.nextInt(); //the size of each internal list
    lol.add(new ArrayList<String>());
    for (int j=0;j<internalListSize;j++){
        String whateverYouWanttoPut = in.nextLine();
        lol.get(i).add(whateverYouWanttoPut);
    }
}

//Access Elements 
try {
    System.out.println(lol.get(0).get(4));
    System.out.println(lol.get(1).get(2));
    System.out.println(lol.get(3).get(2));
} catch (Exception e){
    System.out.println("ERROR!");
}     

2.2。ArrayList[] set = new ArrayList[n];

Scanner in = new Scanner(System.in);
int size = in.nextInt();
//Declare your two dimensional ArrayList of Strings.
ArrayList[] set = new ArrayList[size];

//Populate it. 
for(int i=0;i<size;i++){
    int innerSize = in.nextInt();
    set[i] = new ArrayList<String>();
    for(int j=0;j<innerSize;j++){  
        set[i].add(in.nextLine());                
    }
}        
try{
    System.out.println(set[0].get(1));
    System.out.println(set[1].get(2));
} catch(Exception e){
    System.out.println("ERROR!");
}
于 2017-09-23T03:17:17.103 に答える
1

これを試して :

public class JavaTests {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

    String[ ][ ] test2 = new String[3][3];      //3 can be replace if you add more test2[?][?] = "RandomString"

        test2[0][0] = "String1";
        test2[0][1] = "String2";
        test2[0][2] = "String3";

        test2[1][0] = "String4";
        test2[1][1] = "String5";
        test2[1][2] = "String6";

        test2[2][0] = "String7";
        test2[2][1] = "String8";
        test2[2][2] = "String9";

        for (int i = 0; i <= 2; i++){
            for (int j = 0; j <= 2; j++){
                System.out.print(test2[i][j] +"\t");
            }
            System.out.println("\n");
        }  
        System.out.println("\n");      
    }
}
于 2015-11-28T22:31:55.823 に答える