如何创建2D ArrayList并添加元素

时间:2015-02-15 21:34:35

标签: java arrays arraylist

我有一个小程序,它在2D数组中保存成对的状态和大写字母。在这个程序下面:

public class StateCapitals {

public static void main(String[] args) {
    String[][] answers = {
            {"Alabama", "Montgomery"},
            {"Alaska", "Juneau"},
            {"Arizona", "Phoenix"},
            {"Arkansas", "Little Rock"},
            {"California", "Sacramento"},
            {"Colorado", "Denver"},
            {"Connecticut", "Hartford"},
            {"Delaware", "Dover"},
            {"Florida", "Tallahassee"},
            {"Georgia", "Atlanta"}
    };


    int correctCount = 0;

    for (int i = 0; i < answers.length; i++) {


        System.out.print("What is the capital of " + answers[i][0]);

        Scanner input = new Scanner(System.in);

        String userInput = input.nextLine();



        for (int j = 0; j < answers[i].length - 1; j++) {
            System.out.println("The correct answer should be " + answers[i][j + 1]);

            if(userInput.equals(answers[i][j + 1]))
                correctCount++;

        }


    }

    System.out.println("The correct count is " + correctCount);
    }
}

我需要用List<List<String>> super2dArray = new ArrayList<ArrayList<String>>()替换常规2D数组。

我在stackoverflow上发现了一些如何添加我想要的数组的线程。以下是链接:How to create an 2D ArrayList in java?How do I declare a 2D String arraylist?。但是这些讨论没有解释如何在每个ArrayList中添加元素。我可以做的最好的事情是创建新的ArrayList,然后添加一些元素,最后将ArrayList附加到另一个元素。他们没有解释如何向2D ArrayList添加元素。

1 个答案:

答案 0 :(得分:0)

这是一个更简单的例子:)

请注意,我给ArrayList的构造函数提供了一个固定的初始长度,因为我们已经知道了数组的长度。

List<List<String>> myListOfListOfString = new ArrayList<List<String>>(answers.length);

for(String[] array : answers)
    myListOfListOfString.add(Arrays.asList(array));

有关详细信息,请参阅文档。