Java 数组列表和子列表

Java 数组列表和子列表,java,arraylist,sublist,Java,Arraylist,Sublist,您好,我非常专注于java编程工作的这一部分。我已经做了我认为对这个问题是正确的,但我不确定它是否正确,因为下一个问题要求将4个不同的字符串添加到两个不同的子列表中(这就是我得到stuk的原因) 这是第一个问题: 创建一个名为balancedThings的变量,其类型为ArrayList of ArrayList of String,并添加一个方法balancedInit(),该方法通过创建一个新的ArrayList>object实例化balancedThings变量,该方法还创建两个新的Arr

您好,我非常专注于java编程工作的这一部分。我已经做了我认为对这个问题是正确的,但我不确定它是否正确,因为下一个问题要求将4个不同的字符串添加到两个不同的子列表中(这就是我得到stuk的原因)

这是第一个问题:

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

这是第二个问题:

添加一个方法balancedCreation(),该方法将字符串“剑”和“地图”添加到两个子列表中的第一个子列表,并将字符串“盾牌”和“瓶子”添加到第二个子列表

我的答案是:

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

        balancedThings.add(0, "SubListOne");

        balancedThings.add(1, "SubListTwo");
    }
void balancedInit()
{
balancedThings=新的ArrayList();
添加(0,“次级活塞”);
平衡事项。添加(1,“次级清单2”);
}

有人能解释一下这个问题是否正确,我下一步应该去哪里才能添加到子列表中吗?

您想在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
}
public void balancedInit(){
ArrayList balancedThings=新的ArrayList();
ArrayList subListOne=新的ArrayList();
ArrayList subListTwo=新的ArrayList();
//将值添加到子列表中,然后。。。
balancedThings.add(subListOne);//这将隐式地成为索引0
balancedThings.add(subListTwo);//这将隐式地成为索引1
}

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

我认为您只需要自下而上构建解决方案。在考虑列表列表之前,先考虑单个列表

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

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

        return list;
}
private static ArrayList firstSublist(){
ArrayList=新建ArrayList();
列表。添加(“剑”);
列表。添加(“地图”);
退货清单;
}
ArrayList是您的列表,尖括号中的字符串告诉您列表中的类型。然后添加实际的字符串。对另一个子列表也执行此操作

然后,当你有办法列出你的小清单时,是时候写一个大清单了:

private static void balancedCreation(ArrayList<ArrayList<String>> listOfLists) {
        listOfLists.add((firstSublist()));
        listOfLists.add((secondSublist()));
}
私有静态无效余额创建(ArrayList列表){
add((firstSublist());
add((secondSublist());
}
这里有一个列表。我知道所有的尖括号都可能与类似于
ArrayList
的东西混淆,但请记住从内到外一次看一点

因此,对于大列表,您只需添加一个东西——与子列表完全相同。只要你在更简单的层面上处理业务,提升到顶级水平就不费吹灰之力

最后,main看起来是这样的

public static void main(String[] args) {
        ArrayList<ArrayList<String>> listOfLists = new ArrayList<>();
        balancedCreation(listOfLists);
}
publicstaticvoidmain(字符串[]args){
ArrayList ListofList=新的ArrayList();
平衡创造(列表);
}

希望这有帮助。

以初始化平衡内容的方式初始化和安装“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);
    }
void balancedInit()
{
ArrayList balancedThings=新的ArrayList();
ArrayList subLiostOne==新的ArrayList();
ArrayList subLiostTwo==新的ArrayList();
子活塞。添加(0,“剑”);
次地层。添加(1,“地图”);
子列表2.添加(0,“屏蔽”);
子列表2.添加(1,“瓶子”);
加上(0,次活塞);
增加(1,子列表2);
}

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

创建两个新的ArrayList对象并将其添加到balancedThings列表中
您认为如何
balancedThings.add(0,“SubListOne”)
正在做什么?是的,您应该添加
ArrayList
对象。所以,显然这是不正确的。请坚持Java命名约定,变量是小写的。谢谢Boris,我最近一直在用非Java开发。请考虑一下我的最后一行。