簡體   English   中英

是ArrayList中的值 <Integer> ? (Java)

[英]Is value in ArrayList<Integer>? (Java)

在Java中,我試圖知道ArrayList<Integer>是否存在Integer 我嘗試使用這個一般的解決方案 ,警告稱它不適用於基本數組 這應該不成問題,因為Integer不是原語( int是)。

ArrayList<Integer> ary = new ArrayList<Integer>();
ary.add(2);

System.out.println(String.format("%s", Arrays.asList(ary).contains(2)));

返回false 有什么原因嗎? 感謝任何幫助,盡管詳細程度越低越好。

它返回false任何原因?

僅僅因為Arrays.asList(ary)將返回List<ArrayList<Integer>>並且您嘗試查找它是否包含無法使用的Integer

剩下的就是Arrays.asList(ary)的Javadoc

public static <T> List<T> asList(T... a)返回由指定數組支持的固定大小的列表。

在這里,當您提供ArrayList<Integer>作為參數時,它將返回您提供的內容的List ,即List<ArrayList<Integer>>

您需要在列表上調用List#contains(Object) ,例如ary.contains(myInteger)

您不需要asList()作為ArrayList本身就是一個列表。 另外,您不需要String.format()即可打印結果。 只是這樣做。 返回true

System.out.println(ary.contains(2));

問題是您正在嘗試將ArrayList強制轉換為List。 Arrays.asList采用數組或可變數量的參數,並將所有這些參數添加到列表中。 您所需要做的就是調用System.out.println(ary.contains(2));。

暫無
暫無

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

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