在Java中创建组合两个ArrayList的方法
我是Java编程新手,我正在尝试编写一种方法,将两个ArrayList的内容结合起来,然后打印出来。我写了数组列表,它们可以单独打印,但是我不确定如何打印结果 结果应该是[1,4,9,16,9,7,4,9,11]在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.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?
}
}