2

您好,我宁愿坚持我的 Java 编程工作的这一部分。我已经做了我认为适合这个问题的事情,但我不确定它是否正确,因为下一个问题要求将 4 个不同的字符串添加到两个不同的子列表中(这就是我得到 stuk 的地方)。

这是第一个问题:

创建一个名为balancedThings 的变量,其类型为ArrayList of ArrayLists of Strings,并添加一个方法balancedInit(),该方法通过创建一个新的ArrayList > 对象来实例化balancedThings 变量,并且还创建两个新的ArrayList 对象并将它们添加到balancedThings 列表中。

这是第二个问题:

添加一个方法balancedCreation(),将字符串“sword”和“map”添加到两个子列表的第一个,将字符串“shield”和“bottle”添加到第二个子列表。

这是我的回答:

void balancedInit()
    {
        balancedThings = new ArrayList<>();

        balancedThings.add(0, "SubListOne");

        balancedThings.add(1, "SubListTwo");
    }

谁能解释这是否适合这个问题以及我下一步应该去哪里以添加到子列表中?

4

3 回答 3

0

您想在 ArrayList 中添加字符串的 ArrayList :

public void balancedInit() {
    ArrayList<ArrayList<String>> balancedThings = new ArrayList<ArrayList<String>>();
    ArrayList<String> subListOne = new ArrayList<String>();
    ArrayList<String> subListTwo = new ArrayList<String>();
    // add values to your Sub Lists then ...

    balancedThings.add(subListOne); //  this will be index 0 implicitly
    balancedThings.add(subListTwo); //  this will be index 1 implicitly
}

程序员更喜欢在 Collections 框架中使用多态性,例如将 ArrayList 声明为 List,但这在序列化方面不是一个好习惯

于 2013-10-05T16:13:34.640 回答
0

我认为您只需要自下而上构建解决方案。在担心列表列表之前,请先关注各个列表。

所以首先,你只需要一个字符串列表。你可以这样做:

private static ArrayList<String> firstSublist() {
        ArrayList<String> list = new ArrayList<>();
        list.add("sword");
        list.add("map");

        return list;
}

ArrayList是您的列表,尖括号中的字符串告诉您列表中的类型。然后添加实际的字符串。对另一个子列表也这样做。

然后,当您有办法制作小清单时,是时候编写大清单了:

private static void balancedCreation(ArrayList<ArrayList<String>> listOfLists) {
        listOfLists.add((firstSublist()));
        listOfLists.add((secondSublist()));
}

这里有一个列表列表。我知道所有尖括号都可能与类似的东西混淆ArrayList<ArrayList<String>>,但请记住从内到外一次看一点。

因此,对于大列表,您只是添加了一个东西——就像子列表一样。只要您在更简单的级别上处理业务,就可以轻松达到最高级别。

最后,主要看起来像这样

public static void main(String[] args) {
        ArrayList<ArrayList<String>> listOfLists = new ArrayList<>();
        balancedCreation(listOfLists);
}

希望这可以帮助。

于 2013-10-05T16:16:14.413 回答
0

以初始化 BalancedThings 的方式初始化并实例化“SublistOne”和“SubListTwo”。那应该创建子列表。

void balancedInit()
    {
        ArrayList<ArrayList<String>> balancedThings = new ArrayList<ArrayList<String>>();
        ArrayList<String> subLiostOne =  = new ArrayList<String>();
        ArrayList<String> subLiostTwo =  = new ArrayList<String>();

        subListOne.add(0,"sword");
        subListOne.add(1,"map");

        subListTwo.add(0,"shield");
        subListTwo.add(1,"bottle");

        balancedThings.add(0, subListOne);

        balancedThings.add(1, subListTwo);
    }

如果有帮助,请将答案标记为有帮助

于 2013-10-05T16:17:45.707 回答