对两个ArrayList数组进行比较,求出数组中相等的内容?

scholes3232 2003-10-17 12:00:27
有两个数组,分别为array1:[111,222,333,444,555]
array2:[aaa,111,bbb,222,ccc,333]

怎样求出数组中相等的内容?
...全文
287 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
snake_eye 2003-10-18
  • 打赏
  • 举报
回复
同意(我也是新手)
LoveRose 2003-10-17
  • 打赏
  • 举报
回复
学习了removeAll(Collection c)的方法
好用
希偌 2003-10-17
  • 打赏
  • 举报
回复
ArrayList array1=new ArrayList();
ArrayList array2=new ArrayList();
array1.add("111");array1.add("222");array1.add("333");array1.add("444");array1.add("555");
array2.add("aaa");array2.add("111");array2.add("bbb");array2.add("222");array2.add("ccc");array2.add("333");
System.out.println(array1);
System.out.println(array2);
ArrayList newArray=(ArrayList)array1.clone();//clone,newArray:[111,222,333,444,555]
array1.removeAll(array2);//这一步操作之后,array1:[444,555]
newArray.removeAll(array1);//这一步操作之后,newArray:[111,222,333],这个应该就是你需要的结果了
System.out.println(newArray);
LoveRose 2003-10-17
  • 打赏
  • 举报
回复
最笨的方法是就是两个循环的嵌套了。
依次比较
whyxx 2003-10-17
  • 打赏
  • 举报
回复
楼上的.
如果你看了removeall的源代码你就不会这样说了,里面就是这样处理的,而且你还用了两次.
希偌 2003-10-17
  • 打赏
  • 举报
回复
晕倒
用for来循环contains,效率更低
Yanbin_Q 2003-10-17
  • 打赏
  • 举报
回复
先进行排序啊。
whyxx 2003-10-17
  • 打赏
  • 举报
回复
用两次removeall效率多低呀,其实removeall也不过就是遍历一个list,然后另一个list使用contains函数来判断,这样的话还不如直接自己写,只需要一次就成功了.

List array1 = new ArrayList();
List array2 = new ArrayList();
array1.add("111");
array1.add("222");
array1.add("333");
array1.add("444");
array1.add("555");

array2.add("aaa");
array2.add("111");
array2.add("bbb");
array2.add("222");
array2.add("ccc");
array2.add("333");

List resultList = new ArrayList();

for (Iterator i = array1.iterator(); i.hasNext();) {
Object temp = i.next();
if (array2.contains(temp)) {
resultList.add(temp);
}
}

最后的relustList就是你想要的东西

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧