如何对2个ArrayList进行比较?? 有2个ArrayList A,B;A 里面有4个数据,B里面有6个数据,B包含A:就是A的数据在B里面都有,我想对这俩个ArrayList进行比较,想得到在B里面除A含有的数据以外的那2条数据。请各位帮想个高效的算法,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public boolean equles(ArrayList a,ArrayList b){ if(a==b)return true; if(a.length()!=b.length()) return false; for(int i=0;i<a.length();i++) { if(!(a.get(i).equles(b.get(i)))retrun false; }}没开IDE,我发现不不会写代码了....要命哦 好像Apache的collection-common有类似的实现 liang8305(菜鸟!舍我其谁?) ( ) 信誉:100 这样似乎不妥,万一是这样的呢1,2,3,4,5 和3,4,2呢 其实应该很简单,就把他当个数组的想,就可以了,一个个遍历进行比较 yitianyidian(至之) 你的意思是2个for循环嵌套?看看我这样对不?ArrayList a, b,c;for(int i = 0; i < a.size; i++) { for(int j = 0; j < b.size; j++) { if(a.get(i).equals(b.get(i))) { break; } else { c.add(b.get(i)); break; } }}ArrayList c 是存储在B里面与A不同的对象;看看我这么写有问题吗? 调出来了吗,肯定没有吧,里边写错东西了for(int i = 0; i < a.size(); i++) { for(int j = 0; j < b.size(); j++) { if(a.get(i).equals(b.get(j))) {a.remove(j);break;} c.add(b.get(i)); }}这样写,看看行不行 上边写错了if(a.get(i).equals(b.get(j))) {a.remove(i);break;} c.add(a.get(i));sorry yitianyidian(至之) ( ) 信誉:100 2006-07-07 22:18:00 得分: 0 liang8305(菜鸟!舍我其谁?) ( ) 信誉:100 这样似乎不妥,万一是这样的呢1,2,3,4,5 和3,4,2呢 其实应该很简单,就把他当个数组的想,就可以了,一个个遍历进行比较1,2,3,4,5 和3,4,2呢,长度都不一样,那个length()比较直接就把你打回去了...呵呵 另:难道我那个不算历遍? 另外...我想补充一点ArrayList 应该有个顺序问题1.2.3.4.5的ArrayList 和2.3.4.5.1的ArrayList 算不算相等?这个只能看需求了....我写的那个是要求顺序一致 arraylist自带的算法不用,却偏偏自己写一个效率低的多的算法。无语…… Java与xml 这段代码执行顺序,要最详细的(50分) 求101到200的素数 下载后的 jar 怎样使用? 问一个随机排列字符的问题 如何在showMessageDialog后,焦点能回到原来的TextField上? 关于布局管理器的问题 CULT3D的JAVA小问题 用JAVA怎样做游戏啊?高手指教! 谁看过Java网络编程,此书怎样? JNI中两个jobject怎么比较是同一个实例?急,在线等 请教,哪位高手看看这个代码,能详细介绍下吗,谢谢!!
{
if(a==b)return true;
if(a.length()!=b.length()) return false;
for(int i=0;i<a.length();i++)
{
if(!(a.get(i).equles(b.get(i)))retrun false;
}
}没开IDE,我发现不不会写代码了....要命哦
这样似乎不妥,万一是这样的呢1,2,3,4,5 和3,4,2呢
其实应该很简单,就把他当个数组的想,就可以了,一个个遍历进行比较
你的意思是2个for循环嵌套?看看我这样对不?ArrayList a, b,c;
for(int i = 0; i < a.size; i++) {
for(int j = 0; j < b.size; j++) {
if(a.get(i).equals(b.get(i))) {
break;
}
else {
c.add(b.get(i));
break;
}
}
}
ArrayList c 是存储在B里面与A不同的对象;看看我这么写有问题吗?
for(int i = 0; i < a.size(); i++) {
for(int j = 0; j < b.size(); j++) {
if(a.get(i).equals(b.get(j)))
{a.remove(j);break;}
c.add(b.get(i));
}
}
这样写,看看行不行
if(a.get(i).equals(b.get(j)))
{a.remove(i);break;}
c.add(a.get(i));
sorry
liang8305(菜鸟!舍我其谁?) ( ) 信誉:100
这样似乎不妥,万一是这样的呢1,2,3,4,5 和3,4,2呢
其实应该很简单,就把他当个数组的想,就可以了,一个个遍历进行比较
1,2,3,4,5 和3,4,2呢,长度都不一样,那个length()比较直接就把你打回去了...呵呵
另:难道我那个不算历遍?
1.2.3.4.5的ArrayList 和2.3.4.5.1的ArrayList 算不算相等?
这个只能看需求了....我写的那个是要求顺序一致