我将A,B和C添加到数组列表中。如何检查数组列表是否包含A,B和C,而不是将set id变量设置为1.或者有更好的方法来执行此操作。我只想将id变量设置为1,2或3,具体取决于Array列表中的值。例如,如果数组列表包含A,B和C而不是id = 1,并且数组列表包含A,B,C和D而不是id = 2;
答案 0 :(得分:2)
您将使用List接口中公开的contains方法。您需要确定设置id的内容的逻辑将是您拥有的任何规则。我在这个人为的例子中的猜测是A&& amp; B&& C id = 1
请务必覆盖equals
和hashcode
,否则无法保证list.contains
会返回正确的结果。
答案 1 :(得分:2)
您可以使用ArrayList.contains(Object elem)方法来达到此目的。它返回
如果指定的元素存在,则为true;否则就是假的。
一个小代码片段,可以给你一些想法。
int id = 0;
ArrayList<String> arraylist = new ArrayList<String>();
arraylist.add("A");
arraylist.add("B");
arraylist.add("C");
if(arraylist.contains("A") && arraylist.contains("B"))
id=1;
System.out.println(id)
所以,输出= 1
。
答案 2 :(得分:1)
除了关于equals / hash的注释外,我还要添加使用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;
}
答案 3 :(得分:0)
如果您在数组中放置自定义对象,则需要在其上实现equals和hashCode方法,您可以使用ArrayList类的contains方法。