Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 连接多个ArrayList引用_Java_Arraylist_Reference - Fatal编程技术网

Java 连接多个ArrayList引用

Java 连接多个ArrayList引用,java,arraylist,reference,Java,Arraylist,Reference,因此,我有3个名为书籍,报纸,杂志的数组列表,还有一个名为资源的数组列表 如果你这样做:resources=books然后资源将指向与书籍相同的内存位置 但是,如何将其他两个ArrayList的开头添加到该资源中,使资源包含所有ArrayList?类似于ArrayList内存引用的串联 如果您希望书籍、报纸和杂志的元素ArrayLists将出现在一个ArrayListresources中,则可以使用ArrayList.addAll(Collection)函数:将指定集合中的所有元素追加到此列表的

因此,我有3个名为
书籍
报纸
杂志
的数组列表,还有一个名为
资源
的数组列表

如果你这样做:
resources=books然后资源将指向与书籍相同的内存位置

但是,如何将其他两个ArrayList的开头添加到该
资源中,使资源包含所有ArrayList?类似于ArrayList内存引用的串联

  • 如果您希望书籍、报纸和杂志的元素
    ArrayLists
    将出现在一个
    ArrayList
    resources
    中,则可以使用
    ArrayList.addAll(Collection)
    函数:将指定集合中的所有元素追加到此列表的末尾,按照指定集合的迭代器返回它们的顺序

    resources.addAll(book);
    resources.addAll(newspaper);
    resource.addAll(magazine);
    
  • 您想创建一个
    ArrayList
    ,它将包含ArrayLists as元素:

     ArrayList<ArrayList<String>>resources = new ArrayList<>();
     resources.add(book);
     resources.add(newspaper);
     resources.add(magazine);
    

    如果报纸和书籍的类型不同,你真的不能将不同的类型粘在一起,除非它们共享一个共同的故事。你能分享一些初始化你的ArrayList的代码吗…
    ArrayList books=new ArrayList();ArrayList杂志=新建ArrayList();ArrayList=新的ArrayList()Resource
    的抽象类和三个扩展类
    Book
    paper
    Magazine
    。我需要一种有效的方法来遍历所有数组。这种方法会消耗不必要的内存。哪种方法?我想我已经提到了三种方法。我看不出其中任何一个会不必要地消耗内存,至少是最后两个,因为它们会将数组列表保存为具有相同引用的元素。您对外部数组列表所做的任何更改,例如
    book
    ,都将反映在添加到参考资料或HashMap实现的ArrayList中。试试最后两个
        HashMap<String, ArrayList<String>>resources = new HashMap<>();
                // replace String with the type of the elements of book\newspaper\magazine
        resources.put("book", book);
        resources.put("newspaper", newspaper);
        resources.put("magazine", magazine);