首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问一个不算复杂的算法:把list2比list1多的元素查找出来

2013-09-06 
请教一个不算复杂的算法:把list2比list1多的元素查找出来?有两个ListString list1和list2,List的每个元

请教一个不算复杂的算法:把list2比list1多的元素查找出来?
有两个List<String> list1和list2,List的每个元素由字母和汉字组成。list1有的元素,list2一定有;list2有的元素,list1不一定有。(相当于list2是在list1的基础上,多了几个元素)。现在想把list2比list1多的这些元素查找出来。

示例:list1={a1,b1,b2,c1},list2={a1,a2,b1,b2,c1,c2}。结果应为:a2,c2

本人算法底子不行,只能写出最基本的算法,效率不高。请问大家有什么好的算法吗?多谢指教!
[解决办法]
我能想到的方法就是遍历
[解决办法]

Collections.sort(list1);
Collections.sort(list2);
然后
list2.removeAll(list1);
[解决办法]
jdk提供有现成的方法
list2.removeAll(list1);
然后你再打印一下list2  里面就只有a2,c2了
[解决办法]
类似这样的, list2.retainAll(list1); 再打印list2,里面就是list1和list2的交集a1,b1,b2,c1
[解决办法]
如果想简单的话,
那么就直接list1.removeAll(list2);
如果想研究算法:
目前想到的办法只有遍历list1
判断list1中的元素在list2中是否存在。
[解决办法]
严谨点的想法:用removeAll(List)的方法,队列里的对象比较就要实现下

热点排行