java 合并两个 list内容 剔除相同内容
例:List<String>list1;list1.add("a")list1.add("b")list1.add("c")List<String>list2;list1...
例: List<String> list1;
list1.add("a")
list1.add("b")
list1.add("c")
List<String> list2;
list1.add("a")
list1.add("b")
list1.add("d")
需要返回的List<String> resultList;中只存在String "d";
这个该怎么写! 展开
list1.add("a")
list1.add("b")
list1.add("c")
List<String> list2;
list1.add("a")
list1.add("b")
list1.add("d")
需要返回的List<String> resultList;中只存在String "d";
这个该怎么写! 展开
5个回答
展开全部
遍历这两个list ,使用 双层循环,在内循环判断,若外循环的list的value存在在内循环中,则同时删除两个list中的那个value,不存在的话,使用第三个list来动态添加,最后返回第三个list就是你所需要的resultList。
追问
能帖个测试通过的代码出来吗!
追答
import java.util.ArrayList;import java.util.List;
public class Test {
public static List list_one(){
List list1=new ArrayList();
list1.add("a");
list1.add("b");
list1.add("c");
return list1;
}
public static List list_two(){
List list2=new ArrayList();
list2.add("a");
list2.add("b");
list2.add("d");
return list2;
}
public static List resultList(List list1,List list2){
List same=new ArrayList();
List result=new ArrayList();
for (int i = 0; i s=resultList(list_one(),list_two());
for (int i = 0; i < s.size(); i++) {
System.out.println(s.get(i));
}
}
}
//还有中方法就使用set集合。先添加一个list,用contains方法,弄完之后,再转为list集合。也比较的复杂。
加QQ好友吧!结贴吧。。。。问题帮你解决了
展开全部
你可以再建一个新newlist,把list1和list2的值往newlist里面循环放,放的时候判断一下,有这个值了就不放了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
list2.removeAll(list1);
追问
最好自己测试一下! 这种办法我已经测试过了! 不行的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static void main(String[] args){
List<String> list1 = new ArrayList<String>();
list1.add("a");
list1.add("b");
list1.add("c");
List<String> list2 = new ArrayList<String>();
list1.add("a");
list1.add("b");
list1.add("d");
Set<String> set = new HashSet<String>();
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<String> resultList = Arrays.asList(arr);
}
List<String> list1 = new ArrayList<String>();
list1.add("a");
list1.add("b");
list1.add("c");
List<String> list2 = new ArrayList<String>();
list1.add("a");
list1.add("b");
list1.add("d");
Set<String> set = new HashSet<String>();
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<String> resultList = Arrays.asList(arr);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的是返回c和d吧?不是剔除相同的吗?还有你的那个a b,d咋也添加到list1中?你说的是添加到list2中吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |