社区
C#
帖子详情
如何比较两个ArrayList的值是否相等?
lbsxyk
2005-12-13 02:55:12
ArrayList ListA = new ArrayList();
ArrayList ListB = new ArrayList();
string str = "aaa";
ListA.Add(str);
ListB.Add(str);
if (ListA.Equals(ListB))
return true;
else
return false;
为什么两个的返回false。
如何比较两个ArrayList的值是否相等?
...全文
1703
21
打赏
收藏
如何比较两个ArrayList的值是否相等?
ArrayList ListA = new ArrayList(); ArrayList ListB = new ArrayList(); string str = "aaa"; ListA.Add(str); ListB.Add(str); if (ListA.Equals(ListB)) return true; else return false; 为什么两个的返回false。 如何比较两个ArrayList的值是否相等?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huwei001982
2005-12-14
打赏
举报
回复
to zihu928(笨狐狸)
用 generics 的是懒人,不是高手
--------------------------------
原来泛型在你的眼中不值一提, 呵
xczgb
2005-12-13
打赏
举报
回复
我知道了。。我靠。。
xczgb
2005-12-13
打赏
举报
回复
问问高手。。EqualAll<T>是什么???
顺便学习下。。先谢了
Ivony
2005-12-13
打赏
举报
回复
不好意思,刚才没看清挑刺的程序。
另外,在挑刺的算法里面,泛型似乎是多余的……但思路是对的……。
Ivony
2005-12-13
打赏
举报
回复
这种问题正是泛型的用武之地啊,
挑刺的算法可以改进一下,如果T实现了ICompare接口,就让他自己比较:
ICompare comparable = e1.Current as ICompare;
if ( comparable != null )
....
Lcindep110
2005-12-13
打赏
举报
回复
学习!!!!!
xvting
2005-12-13
打赏
举报
回复
如果arraylist里是string等简单数据类型用一次顺环比较就ok
如果是对象,对象里还有对象,那就要每个对象都加个比较方法equal(),上层对象equal()调用下层对象equal(),层层调用!
类似的还有对象复制!
汗!谁知道简单点的方法!
c11_11_11
2005-12-13
打赏
举报
回复
循环比较
tiaoci
2005-12-13
打赏
举报
回复
to zihu928(笨狐狸)
用 generics 的是懒人,不是高手
zhiang75
2005-12-13
打赏
举报
回复
读出来比较还要考虑位置的问题
ArrayList ListA = new ArrayList();
ArrayList ListB = new ArrayList();
string str1 = "1";
string str2 = "2";
ListA.Add(str1);
ListB.Add(str2);
ListA.Add(str2);
ListB.Add(str1);
这样的列表 ListA 和ListB 相等吗? 要是相等,比较就更麻烦了.:)
zihu928
2005-12-13
打赏
举报
回复
to:tiaoci(我挑刺,我快乐)
是用到generic吗?看来是高手呀!
恩,学习!!!
oyljerry
2005-12-13
打赏
举报
回复
一个个读了比较吧
swordragon
2005-12-13
打赏
举报
回复
真的得一个一个读出来进行比较?
++++++++++++++++++++
没错,只能一个一个地去比较。
jackymi
2005-12-13
打赏
举报
回复
如果不在乎元素的内容是否相等的话,直接比较count,否则只有逐个比较
tiaoci
2005-12-13
打赏
举报
回复
比较通用的算法这么写
public static bool EqualAll<T>(IEnumerable<T> first, IEnumerable<T> second)
{
using(IEnumerator<T> e1 = first.GetEnumerator())
{
using(IEnumerator<T> e2 = second.GetEnumerator())
{
while(e1.MoveNext())
{
if(!(e2.MoveNext() && object.Equals(e1.Current, e2.Current))) return false;
}
if(e2.MoveNext()) return false;
}
}
return true;
}
jijl2001
2005-12-13
打赏
举报
回复
那你就一个一个比了
lbsxyk
2005-12-13
打赏
举报
回复
To: jackymi(完美刺客)
我也知道这样相等了,但我想知道如何实现两个List值比较的方法,真的得一个一个读出来进行比较?
jackymi
2005-12-13
打赏
举报
回复
ArrayList ListA = new ArrayList();
ArrayList ListB = ListA;
string str = "aaa";
ListA.Add(str);
ListB.Add(str);
if (ListA.Equals(ListB))
return true;
else
return false;
这样就相等啦
lbsxyk
2005-12-13
打赏
举报
回复
实际上我就是为了给我的类重写一个Equals方法,我是这样的写的
public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType()) return false;
return ((Party)obj).PartyName.Equals(partyName)
&& ((Party)obj).parents.Equals(parents)
&& ((Party)obj).children.Equals(children);
}
public override int GetHashCode()
{
return partyName.GetHashCode() ^ children.GetHashCode() ^ parents.GetHashCode();
}
其中parents和children是ArrayList类型,所以这样就会出错!
antoniusguo
2005-12-13
打赏
举报
回复
要实现上面的功能除非自己重写Equals函数,再重写GetHashCode函数
加载更多回复(1)
java
比较
两个
arraylist
_判断
两个
ArrayList
元素
是否
相同
引入guava包com.google.guavaguava25.1-jreimport com.google.common.collect.Iterators;import com.google.common.collect.Lists;import org.junit.Test;import java.util.
ArrayList
;import java.util.Arrays;import j...
如何在Java中
比较
两个
ArrayList
?
通过简单的示例学习比较Java中的两个
ArrayList
。 我们将首先测&...
如何判断
两个
List集合内容
是否
相等
?
如何判断
两个
集合内容
是否
相等
? 这个问题考虑的几个点: 1.size
是否
相同 2.元素
是否
相同(废话) 不多写了直接贴代码: /** * 判断集合元素
是否
相同 * @param list_a 集合a * @param list_b 集合b * @param <Q> 泛型 * @return */ public static <Q> boolean equals(List<Q> list_a
比较
两个
ArrayList
是否
相同
比较
两个
ArrayList
是否
相同
ArrayList
集合判断
是否
相等
如果只进行List集合判断
是否
相等
,不用重写hashcode也行,因为list的底层就是数组而已,不用通过hashcode方法来判断要放在的位置,只需要重写equals方法即可
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章