簡體   English   中英

Java數組列表包含和設置值

[英]Java Array list contains and set value

我將A,B和C添加到數組列表中。 我如何檢查數組列表是否包含A,B和C,而不是將id變量設置為1。還是有更好的方法呢? 我只想根據數組列表中的值將id變量設置為1,2或3。 例如,如果數組列表包含id等於1的A,B和C,並且數組列表包含id等於2的A,B,C和D;

您將使用List界面中公開的contains方法。 確定設置ID所需的邏輯將是您擁有的任何規則。 在這個人為的例子中,我的猜測是A && B && C id = 1

切記要覆蓋equalshashcode否則不能保證list.contains將返回正確的結果。

為此,可以使用ArrayList.contains(Object elem)方法。 它返回

如果存在指定的元素,則為true;否則為false。 否則為假。

一個小的代碼段可以給您一些想法。

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

除了關於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;
}

如果將自定義對象放入數組中,則需要在其上實現equals和hashCode方法,則可以使用ArrayList類的contains方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM