java中如何取得两个List集合中不相等的值?

急求!请大虾帮忙!谢谢~~... 急求!请大虾帮忙!谢谢~~ 展开
 我来答
jamxval
2014-11-12 · TA获得超过6822个赞
知道大有可为答主
回答量:4308
采纳率:82%
帮助的人:1417万
展开全部

a.retainAll(b);  // 保留在 b 中也有a中也有的条目,从a中去掉不在集合b中的条目。

a.removeAll(b) ,从a中删除所有在 b中的条目。



把两个方法组合起来就知道怎么得到差值。

c  = new ArrayList(a);
c.retainAll(b); // 得到  a, b 的交集。
d = new ArrayList(a);
d.addAll(b); // 合并 a, b 值到 d 中。
d.removeAll(c); // 去掉交集 c 中的所有条目。留下只出现在a 或 b 中的条目。


一般来说如果你说集合,一般是用 Set 而不是 List 哦,只有 Set 是数学意义上的集合(能保证唯一性的,不存在重复元素)。

yugi111
推荐于2017-09-16 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
package p1;

import java.util.Arrays;
import java.util.List;

public class Lab9
{
public static void main ( String[] args )
{
List<String> list1 = Arrays.asList ("a", "f", "e", "x", "w");
List<String> list2 = Arrays.asList ("a", "b", "c", "d");
String temp1 = list1.toString ().replaceAll ("[\\[\\]]", ",").replaceAll ("\\s+", "");
String temp2 = list2.toString ().replaceAll ("[\\[\\]]", ",").replaceAll ("\\s+", "");
String result2 = "";
for ( int i = 0; i < list1.size (); i++ )
{
if (temp2.indexOf ("," + list1.get (i) + ",") == -1)
{
result2 += list1.get (i) + ",";
}
}
System.out.println ("存在list1而不存在list2的元素有:" + result2);
System.out.println ("同理可证");
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ant_szc
2014-11-12 · TA获得超过342个赞
知道小有建树答主
回答量:346
采纳率:0%
帮助的人:236万
展开全部
用contains方法
追问
具体点
追答
首先,用遍历一个list,吧每个值都插入到map集合里,然后遍历另一个,在另一个list循环的时候调用map的get方法,如果为null的取出来,否则,continue,继续循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式