2012-02-14 73 views
0

我想比较两种不同类型的数组列表中即如何在android中比较两种不同类型的数组列表?

ArrayList<A> list1 = new ArrayList<A>();
ArrayList<B> list2 = new ArrayList<B>();

所以我想比较list1list2并获得指数在这两个相同的数?

+2

如果两个项目属于不同类型,两个项目如何可以相同? – 2012-02-14 13:45:34

+1

你怎么比较说ObjectInputStream和inteter? – shift66 2012-02-14 13:45:55

+1

首先你应该定义A类型的元素与B类型的元素是“相同的”。 – hovanessyan 2012-02-14 13:46:52

回答

1

所以我想比较list1和list2,并得到两个指数都相同的计数?

(我不知道你有什么类型AB,但我就认为这是有道理的使用equals对它们进行比较。)

您可以使用Iterator s到迭代列表,并使用if语句为每个相等的元素递增计数器。为的ArrayList

Iterator<A> iter1 = list1.iterator(); 
Iterator<B> iter2 = list2.iterator(); 

int sameCounter = 0; 

while (iter1.hasNext() && iter2.hasNext()) 
    if (iter1.next().equals(iter2.next())) 
     sameCounter++; 
+0

感谢您的回复。 – 2012-02-14 13:48:53

+0

不客气。 – aioobe 2012-02-14 13:52:58

-5

使用大小的方法以获得最大的指标:

如果(list1.size()== list2.size()){ ...... }

如果元素的类型不同,则无法对它们进行比较。

+0

感谢您的答复。但为什么我们无法比较不同类型的元素? – 2012-02-14 14:00:24

+0

什么是错误信息?你想要比较哪些类型? – aioobe 2012-02-14 15:05:06

+0

对不起,我想我不明白你的问题,所以我以前的答案是不正确的(我的英语理解,:() – equero 2012-02-14 16:27:27

相关问题