在Java中创建组合两个ArrayList的方法

在Java中创建组合两个ArrayList的方法,java,arraylist,Java,Arraylist,我是Java编程新手,我正在尝试编写一种方法,将两个ArrayList的内容结合起来,然后打印出来。我写了数组列表,它们可以单独打印,但是我不确定如何打印结果 结果应该是[1,4,9,16,9,7,4,9,11] 包装实践; 导入java.util.ArrayList; 公开课实习1{ 公共静态void main(字符串[]args){ /**10/3/2020 *将一个数组列表追加到另一个数组列表 */ ArrayList partA=新的ArrayList(); 增加第(1)部分; 增加第(

我是Java编程新手,我正在尝试编写一种方法,将两个ArrayList的内容结合起来,然后打印出来。我写了数组列表,它们可以单独打印,但是我不确定如何打印结果

结果应该是[1,4,9,16,9,7,4,9,11]

包装实践;
导入java.util.ArrayList;
公开课实习1{
公共静态void main(字符串[]args){
/**10/3/2020
*将一个数组列表追加到另一个数组列表
*/
ArrayList partA=新的ArrayList();
增加第(1)部分;
增加第(4)部分;
增加第(9)部分;
增加第(16)部分;
ArrayList partB=新的ArrayList();
第二部分增加(9);
第二部分增加(7);
第二部分增加(4);
第二部分增加(9);
第二部分增加(11);
系统输出打印项次(“A:+partA”);
系统输出打印项次(“B:+partB”);
System.out.println(“Append:”+???);//如何将两个ArrayList一起打印?
}
公共静态ArrayList追加(ArrayList partA,ArrayList partB)
{
ArrayList append=新的ArrayList();
对于(int x=0;x<1;x++)
{
append.add(partA.get(x));
append.add(partB.get(x));
}
返回追加;
}
}
使用addAll()


如果你的最终结果应该是:

结果应该是[1,4,9,16,9,7,4,9,11]

前一半值来自PartA列表,后一半值全部来自PartB列表。因此,您需要首先将所有PartA值添加到“附加”列表中,然后添加PartB值

考虑到这一点,您的append方法需要更改为:

public static ArrayList<Integer> append(ArrayList <Integer> partA, ArrayList <Integer> partB)
{
     ArrayList<Integer> append = new ArrayList<Integer>();


    for(int x = 0; x < partA.size(); x++)  
    {
        append.add(partA.get(x));
    }

    for(int x = 0; x < partB.size(); x++)  
    {
        append.add(partB.get(x));
    }
    return append;
    }
}
publicstaticarraylistappend(arraylistparta,arraylistpartb)
{
ArrayList append=新的ArrayList();
对于(int x=0;x
然后简单地迭代附加的数组列表,它将按照您指定的顺序打印出来

更新:

更简单的方法是按照另一篇文章所说的做,您可以使用addAll方法将前两个ArrayList的值添加到附加的数组列表中。

import java.util.ArrayList;
import java.util.ArrayList;

public class practice_1 {

    public static void main(String[] args) {
        /**10/3/2020
         * Appends one array list to another
         */

        ArrayList <Integer> partA = new ArrayList <Integer>();
        partA.add(1);
        partA.add(4);
        partA.add(9);
        partA.add(16);
        ArrayList <Integer> partB = new ArrayList <Integer>();
        partB.add(9);
        partB.add(7);
        partB.add(4);
        partB.add(9);
        partB.add(11);



        System.out.println("A: " + partA);
        System.out.println("B: " + partB);
        partA.addAll(partB);
        System.out.println("Append: " + partA); //How do I print the two ArrayLists together?
    }
   
}
公开课实习1{ 公共静态void main(字符串[]args){ /**10/3/2020 *将一个数组列表追加到另一个数组列表 */ ArrayList partA=新的ArrayList(); 增加第(1)部分; 增加第(4)部分; 增加第(9)部分; 增加第(16)部分; ArrayList partB=新的ArrayList(); 第二部分增加(9); 第二部分增加(7); 第二部分增加(4); 第二部分增加(9); 第二部分增加(11); 系统输出打印项次(“A:+partA”); 系统输出打印项次(“B:+partB”); partA.addAll(partB); System.out.println(“Append:+partA);//如何将两个ArrayList一起打印? } }
有多种方法可以组合两个列表

使用流

List newList=Stream.of(listOne,listwo).flatMap(Collection::Stream).collect(Collectors.toList());
使用Streams concat

List newList=Stream.concat(listOne.Stream(),listwo.Stream()).collect(toList());
使用Apache commons集合

List newList=ListUtils.union(listOne,listwo);
最后,您可以使用

System.out.println(新列表)

您只需打印附加的列表。考虑到您的
append()
方法不会产生您期望的输出,因为它不会一个接一个地附加列表,而是创建一个新列表,其中列表a的每个元素后面跟着列表B上相同索引处的元素。如System.out.println(“append:+append”)@couscous No,比如
System.out.println(“Append:+Append(partA,partB))。但请记住我之前的评论。我看不出您的两个流选项之间有任何区别…很抱歉,这是一个复制粘贴错误:)。编辑。谢谢
A: [1, 4, 9, 16]
B: [9, 7, 4, 9, 11]
Append: [1, 4, 9, 16, 9, 7, 4, 9, 11]
public static ArrayList<Integer> append(ArrayList <Integer> partA, ArrayList <Integer> partB)
{
     ArrayList<Integer> append = new ArrayList<Integer>();


    for(int x = 0; x < partA.size(); x++)  
    {
        append.add(partA.get(x));
    }

    for(int x = 0; x < partB.size(); x++)  
    {
        append.add(partB.get(x));
    }
    return append;
    }
}
import java.util.ArrayList;

public class practice_1 {

    public static void main(String[] args) {
        /**10/3/2020
         * Appends one array list to another
         */

        ArrayList <Integer> partA = new ArrayList <Integer>();
        partA.add(1);
        partA.add(4);
        partA.add(9);
        partA.add(16);
        ArrayList <Integer> partB = new ArrayList <Integer>();
        partB.add(9);
        partB.add(7);
        partB.add(4);
        partB.add(9);
        partB.add(11);



        System.out.println("A: " + partA);
        System.out.println("B: " + partB);
        partA.addAll(partB);
        System.out.println("Append: " + partA); //How do I print the two ArrayLists together?
    }
   
}