java合并两个list,java 合并两个 list内容 剔除相同内容
java合并两个list,java 合并两个 list内容 剔除相同内容详细介绍
本文目录一览: java 中怎样将2个不同对象的list 和成一个list
对,是楼上这样的,不过也可以list.add(list1),list.add(list2);这样也行啊,不过他list.addAll()更方便一点,并且性能也会更好一点
合并list需要两个list的类型相同,例子如下:
List
list1 = new ArrayList
();
List
list2 = new ArrayList
();
list1.add("测");
list1.add("试");
list2.add("合");
list2.add("并");
list1.addAll(list2);
public static void main(String[] args) {
// TODO Auto-generated method stub
List
a = new ArrayList
();
List
b = new ArrayList
();
a.add("asdf");
b.add(new Integer(1));
all.addAll(a);
all.addAll(b);
System.out.println(all);
}
list.addAll()即可。
List
list.addAll(list1);
list.addAll(list2);
list1.addAll(list2);
前提是list的类型要一样,如果是两个对象,那么都转成Object应该就可以了吧。java怎样合并两个list?
List接口中,有一个方法addAll,可以实现合并list。
List
a=new ArrayList
();
List
b=new ArrayList
();
b.addAll(a);
合并出来的List就是b,而不是一个新的List .
如果创建新的可以:
ArrayList
c=(ArrayList
)a.clone;
c.addAll(b);
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程[1] 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点[2] 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等[3] 。
JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK[13] 。
另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境[14] 。
JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可[15] 。
java中 两个list怎么合并啊?有list,list1,list2。想要list等于list1和list2相加得到的队列怎么写?
list1.addAll(list2); //这样就把list2的元素全部加在list1中了
java8list = Stream.of(list1, list2).flatMap(List::stream).collect(Collectors.toList());
list.addAll(list1)
list.addAll(list2);
就可以了。
如果不行的话,换JDK1.8
Java将两个list合并,只需要把list1和list2内容都添加都集合list中即可,如下:
package com.test;import java.util.ArrayList;import java.util.List;public class TestA { /** * @param args */ public static void main(String[] args) { //定义集合1 List
list1=new ArrayList
(); list1.add("a1"); list1.add("a2"); list1.add("a3"); System.out.println("集合1内容:"+list1); //定义集合2 List
list2=new ArrayList
(); list2.add("b1"); list2.add("b2"); list2.add("b3"); System.out.println("集合2内容:"+list2); List
list=new ArrayList
(); //将集合1的内容全添加到集合中 list.addAll(list1); //将集合2的内容全添加到集合中 list.addAll(list2); System.out.println("现在集合内容:"+list); }}运行结果:集合1内容:[a1, a2, a3]集合2内容:[b1, b2, b3]现在集合内容:[a1, a2, a3, b1, b2, b3]
java 中 两个定义相同List(T),如果把他们合并成一个?
boolean addAll(Collection
c) 添加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序(可选操作)。
list.addAll(anotherList);
import java.util.ArrayList;import java.util.List;
public class Test {
public static void main(String[] args) {
List
lst1=new ArrayList
();
List
lst2=new ArrayList
();
lst1.add("北京");
lst1.add("上海");
lst2.add("南京");
lst2.add("重庆");
lst1.addAll(lst2);
for(int i=0;i
<lst1.size();i++){
System.out.println(lst1.get(i));
}
}
}
List a = new ArrayList();
List b = new ArrayList();
a.addAll(b);
程序如下:
IList a = new ArrayList();IList b = new ArrayList();(a as ArrayList).AddRange(b);
拓展资料:
Java programming language具有目前大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的"形式和感觉",但它要比C++语言更易于使用,而且在编程时彻底采用了一种"以对象为导向"的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。
Java是Sun微系统公司在1995年推出的,推出之后马上给互联网的交互式应用带来了新面貌。目前,最常用的两种互联网浏览器软件中都包括一个Java虚拟机。几乎所有的操作系统中都增添了Java编译程序。
参考资料:
Java—百度百科
</lst1.size();i++){
java 将两个list合并 list1={[1,2],[1,2]} list2={[3],[3]}合成之后的效果是{[1,2,3],[1,2,3]}
写了一个方法,主方法是测试用的,希望你能满意
public class Test {
public List
addArray(List
list1,List
list2){
int listSize=list1.size();//得到每个集合中放的元素的个数
int[] number1=(int[])list1.get(0);
int[] number2=(int[])list2.get(0);
List
list3=new ArrayList();
int[] newArray=new int[number1.length+number2.length];
System.arraycopy(number1,0,newArray,0,number1.length);
System.arraycopy(number2,0,newArray,number1.length,number2.length);
for(int i=0;i
<listsize;i++){
list3.add(newArray);
}
return list3;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test=new Test();
List
list1=new ArrayList();
List
list2=new ArrayList();
int[] number1={1,2};
int[] number2={3};
list1.add(number1);
list1.add(number1);
list2.add(number2);
list2.add(number2);
List
list3=test.addArray(list1, list2);
for(int j=0;j
<list3.size();j++){
int[] number3=(int[])list3.get(j);
for(int i=0;i
<number3.length;i++){
System.out.print(number3[i]+" ");
}
System.out.println();
}
}
}
List中是什么?
这样没有直接的方法合并,循环LIST来处理。
list 里面数据[1,2]是数组还是list?假设是list 如下操作即可:
for(int 0;i
<list1.size();i++){
list1.get(i).addAll(list2.get(i));
}
合并的结果在list1中。代码如下:
import java.util.*;
public class MyList {
public static void main(String[] args) {
ArrayList
list1=new ArrayList
();
ArrayList
list2=new ArrayList
();
ArrayList
list31=new ArrayList
();
ArrayList list3=new ArrayList();
ArrayList list4=new ArrayList();
ArrayList list5=new ArrayList();
ArrayList list6=new ArrayList();
list3.add(1);
list3.add(2);
list4.add(3);
list5.add(1);
list5.add(2);
list6.add(3);
list1.add(list3);
list1.add(list5);
list2.add(list4);
list2.add(list6);
for(int i=0;i
<list1.size();i++){
list1.get(i).add(list2.get(i));
}
for(int i=0;i
<list1.size();i++){
System.out.println(list1.get(i));
}
}
}
真纠结就这一段代码还 错误百出改半天。。。
如果[1,2]是数组 可用数组System.arrayCopy();
如果有什么问题追问或hi我
</list1.size();i++){
</list1.size();i++){
</list1.size();i++){
</number3.length;i++){
</list3.size();j++){
</listsize;i++){
java 怎么把多个list 合并成一个去掉重复的
List
list1 = new ArrayList
();list1.add(1);list1.add(2);list1.add(3);List
list2 = new ArrayList
();list2.add(2);list2.add(3);list2.add(4);list2.removeAll(list1);list2.addAll(list1);System.out.println(list2);
利用set集合的排重特性
用set吧,set可以去掉重复的,和list的存取是一样的。
List接口中,有一个方法addAll,可以实现合并list。 List a=new ArrayList(); List b=new ArrayList(); b.addAll(a); 合并出来的List就是b,而不是一个新的List . 如果创建新的可以: ArrayList c=(ArrayList )a.clone; c.addAll(b);
怎么用java把多个list合并成一个?
下面的例子讲了如何合并两个java list, 用简单的方法,而不用自己去造轮子,循环list 去做,用如下建档方法:
import java.util.ArrayList;import java.util.List;public class JoinList {
public static void main(String[] args) {
List
listA = new ArrayList
(); listA.add("A");
List
listB = new ArrayList
(); listB.add("B");
List
listFinal = new ArrayList
(); listFinal.addAll(listA); listFinal.addAll(listB);
//same result //List
listFinal = new ArrayList
(listA); //listFinal.addAll(listB);
System.out.println("listA : " + listA); System.out.println("listB : " + listB); System.out.println("listFinal : " + listFinal);
}}你可以看到结果如下:listA : [A]listB : [B]listFinal : [A, B]其实最关键的就是调用 list 的 addall 方法,apache 的 listUtil , 里面有个 union 方法,其实也是用的 addall 方法。
示例代码:public static void main(String[] args){List
list1 = new ArrayList
();list1.add(1);list1.add(2);list1.add(3);list1.add(4);List
list2 = new ArrayList
();list2.add(1);list2.add(4);list2.add(7);list2.add(10);List
listAll = new ArrayList
();listAll.addAll(list1);listAll.addAll(list2);listAll = new ArrayList
(new LinkedHashSet<>(listAll));System.out.println(listAll);}输出:[1, 2, 3, 4, 7, 10]
list指表、一览表、 明细表、目录、名单,在计算机领域指序列。在编程语言中,List是类库中的一个类,可以简单视之为双向连结串行,以线性列的方式管理物件集合。
list是类库提供的众多容器(container)之一,在集合的任何位置增加或删除元素都很快,但是不支持随机存取;以模板方式实现(泛型),可以处理任意型别的变量,包括使用者自定义的资料型态。
java 怎么把多个list 合并成一个去掉重复的
下面的例子讲了如何合并两个java list, 用简单的方法,而不用自己去造轮子,循环list 去做,用如下建档方法:
import java.util.ArrayList;import java.util.List;public class JoinList {
public static void main(String[] args) {
List
listA = new ArrayList
(); listA.add("A");
List
listB = new ArrayList
(); listB.add("B");
List
listFinal = new ArrayList
(); listFinal.addAll(listA); listFinal.addAll(listB);
//same result //List
listFinal = new ArrayList
(listA); //listFinal.addAll(listB);
System.out.println("listA : " + listA); System.out.println("listB : " + listB); System.out.println("listFinal : " + listFinal);
}}你可以看到结果如下:listA : [A]listB : [B]listFinal : [A, B]其实最关键的就是调用 list 的 addall 方法,apache 的 listUtil , 里面有个 union 方法,其实也是用的 addall 方法。
示例代码:
public static void main(String[] args){ List
list1 = new ArrayList
(); list1.add(1); list1.add(2); list1.add(3); list1.add(4); List
list2 = new ArrayList
(); list2.add(1); list2.add(4); list2.add(7); list2.add(10); List
listAll = new ArrayList
(); listAll.addAll(list1); listAll.addAll(list2); listAll = new ArrayList
(new LinkedHashSet<>(listAll)); System.out.println(listAll); }
输出:
[1, 2, 3, 4, 7, 10]
代码要典:
合并 使用java.util.List.addAll(Collection
)
去重,借助LinkedHashSet
java 合并两个 list内容 剔除相同内容
你可以再建一个新newlist,把list1和list2的值往newlist里面循环放,放的时候判断一下,有这个值了就不放了。
list2.removeAll(list1);
public static void main(String[] args){
List
list1 = new ArrayList
();
list1.add("a");
list1.add("b");
list1.add("c");
List
list2 = new ArrayList
();
list1.add("a");
list1.add("b");
list1.add("d");
Set
set = new HashSet
();
for(String s: list1){
set.add(s);
}
for(String s : list2){
if(set.contains(s)){
set.remove(s);
}else{
set.add(s);
}
}
String[] arr = new String[set.size()];
set.toArray(arr);
List
resultList = Arrays.asList(arr);
}
遍历这两个list ,使用 双层循环,在内循环判断,若外循环的list的value存在在内循环中,则同时删除两个list中的那个value,不存在的话,使用第三个list来动态添加,最后返回第三个list就是你所需要的resultList。