Java Array列表包含和设置值

时间:2012-02-28 21:28:27

标签: java arraylist

我将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;

4 个答案:

答案 0 :(得分:2)

您将使用List接口中公开的contains方法。您需要确定设置id的内容的逻辑将是您拥有的任何规则。我在这个人为的例子中的猜测是A&& amp; B&& C id = 1

请务必覆盖equalshashcode,否则无法保证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方法。