ArrayLists和子列表

时间:2013-10-05 16:00:26

标签: java arraylist sublist

你好我很喜欢我的java编程工作的这一部分。我已经完成了我认为适合这个问题但我不确定它是否正确,因为下一个问题要求将两个不同的字符串添加到两个不同的子列表中(这就是我得到stuk的那些)。

这是第一个问题:

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

这是第二个问题:

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

这是我的答案:

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

        balancedThings.add(0, "SubListOne");

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

任何人都可以解释这是否适合这个问题以及我应该去哪里以便添加到子列表中?

3 个答案:

答案 0 :(得分:0)

你想在ArrayList中添加一个StringList:

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,但在序列化方面这不是一个好习惯

答案 1 :(得分:0)

我认为您只需要自下而上构建解决方案。在担心列表清单之前,首先要担心个别列表。

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

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

        return list;
}

ArrayList 是您的列表,尖括号中的 String 会告诉您列表中的类型。然后添加实际的字符串。也可以为其他子列表执行此操作。

然后当你有办法制作你的小名单时,有时间组成一个大名单:

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

这里有一个列表列表。我知道所有尖括号都可能与ArrayList<ArrayList<String>>之类的东西混淆,但只记得从里到外一次看一下它。

所以在大名单中,你只是添加一个东西 - 就像子列表一样。只要您在更简单的层面上处理业务,建立最高水平就没有汗水。

最后, main 看起来像这样

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

希望这有帮助。

答案 2 :(得分: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);
    }

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