首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java集合FrameWork

java集合FrameWork
EN

Stack Overflow用户
提问于 2012-03-09 11:10:54
回答 4查看 658关注 0票数 1

我想把Arraylist存储在另一个列表中,像这样的东西,我知道它是错误的,但是很像这样.

代码语言:javascript
复制
 List list=new ArrayList();
 list.add(new("element1","element2","element3",element4=?);
 list.add(new("element5","element6","element7",element8=?);

现在,如果您看到上面的代码,可以添加元素,或者将第一行列到第三个元素,但是第四个元素是另一个数组数组,如何将其添加或追加到元素的第一行。第二排也是一样。

注意:- element4和element8的长度也不同,这意味着element4有2个字符串,元素8有10个字符串。

当我显示列表时,它应该像下面这样显示列表

代码语言:javascript
复制
  The first row of list is
  element1  element2  element3  element4.1  element4.2 
  the second row of list is
  element5  element6  element7  element8.1  element8.2 element8.3 element8.4 element8.5 element8.6 element8.7 element8.9 element8.10
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-09 11:19:41

你试过这样做吗?

代码语言:javascript
复制
    List list = new ArrayList();
    list.add(Arrays.asList("element1", "element2", "element3",
            Arrays.asList("element4.1", "element4.2")));
    list.add(Arrays.asList("element5", "element6", "element7",
            Arrays.asList("element8.1", "element8.2", "element8.3")));

    // print values
    System.out.println(list.get(0));
    System.out.println(list.get(1));
票数 0
EN

Stack Overflow用户

发布于 2012-03-09 11:22:19

所以根据我对你问题的理解,你需要一个List<List<String>>。这样做如下:

代码语言:javascript
复制
    List<String> strs1 = new ArrayList<String>();
    strs1.add("element1");
    strs1.add("element2");

    List<String> strs2 = new ArrayList<String>();
    strs2.add("element3");

然后

代码语言:javascript
复制
    List<List<String>> listOfList = new ArrayList<List<String>>();
    listOfList.add(strs1);
    listOfList.add(strs2);

代码语言:javascript
复制
    List<List<String>> asList = Arrays.asList(strs1, strs2);
票数 1
EN

Stack Overflow用户

发布于 2012-03-09 11:19:32

您可以通过这样的操作将列表添加到其他列表中:List<List<String>> myList = new ArrayList<List<String>>();...。但是,鉴于您正在添加具有不同类型的项,我建议您执行以下操作(假设您始终有3个数组列表和1个数组):

  • 创建了一个接受4个参数的新类,它们是3个数组列表和1个数组。
  • 让您的类重写自己的toString()方法,这样它就可以迭代元素并以您想要的方式打印它们的内容。
  • 使用泛型创建一个列表,使用如下内容:List<MyClass> myList = new ArrayList<MyClass>();...。在本例中,MyClass是我在第1点中描述的类。这将允许您创建一个不需要进行任何转换的类型安全结构,从而使您的代码看起来更干净,并且运行速度可能稍微快一些。

考虑到您说元素可以包含各种长度的字符串列表,您可以这样做:

代码语言:javascript
复制
public class MyClass
{
    private List<String> arrayList1;...
    private String[] myArray;...

    public MyClass(List<String> list1, ..., String[] myArray)
    {
        this.arrayList1 = list1;
        this.myArray = myArray;
        ...
    }

    ...
    @Override
    public String toString()
    {
        StringBuilder sb = new StringBuilder();
        //iterate adding your list contents to your string builder.
        return sb.toString();
    }
}

然后添加元素将如下所示:

代码语言:javascript
复制
...
List<String> arrayList1 = ...;
arrayList1.add("...");...
String[] myArray = ...;

MyClass myClass = new MyClass(arrayList1, ..., myArray);
System.out.println(myClass.toString());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9633072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档