2012-02-28 70 views
0

我将A,B和C添加到数组列表中。我如何检查数组列表是否包含A,B和C,而不是将id变量设置为1.或者是否有更好的方法来执行此操作。我只是想设置ID变量为1,2或3,这取决于Array列表中的值。例如,如果数组列表包含A,B和C而不是id = 1,并且数组列表包含的A,B,C和D比id = 2;Java Array列表包含并设置值

回答

2

您可以使用ArrayList.contains(Object elem)方法达到此目的。它返回

如果指定的元素存在,则为true;否则为假。

一小段代码给你一些想法。因此,输出= 1

+0

谢谢你..完美 – 2012-02-28 21:38:16

+0

didnt包括各地的哈希码文字和等于-1 – Woot4Moo 2012-02-28 21:51:51

+0

@ Woot4Moo:我觉得你没没有注意到这个声明“给你一些想法”。 – RanRag 2012-02-28 22:04:46

0

如果将自定义对象放入数组中,则需要在其上实现equals和hashCode方法,则可以使用ArrayList类的contains方法。

2

您将使用在List接口中公开的contains方法。您需要确定设置id的逻辑将成为您拥有的任何规则。我在这个人为的例子猜测这将是,如果A & &乙& &ÇID = 1

记住覆盖equalshashcode或有不能保证list.contains将返回正确的结果。

1

除了约等号/哈希的笔记,我想补充的简化使用List.containsAll()的:

int id = 0; 
List forId1 = Arrays.asList("A", "B", "C"); 
List forId2 = Arrays.asList("A", "B", "C", "D"); 
if (mylist.containsAll(forId2) { 
    id=2; 
} else if (mylist.containsAll(forId1) { 
    id=1; 
}