5 回答

TA貢獻1836條經(jīng)驗 獲得超3個贊
您可以只使用來獲取是否在列表中的arr.contains()
布爾值。Integer
然后您可以將此值轉(zhuǎn)換為YES
or NO
(如果您確實需要它):
String yesNo = arr.contains(k) ? "YES" : "NO";

TA貢獻1784條經(jīng)驗 獲得超8個贊
這將起作用:
static String findNumber(List<Integer> arr, int k) {
String res = "YES";
for (int i = 0; i < arr.size(); i++) {
if (k == arr.get(i))
res = "YES";
break;
else
res = "NO";
}
return res;
}
一旦找到整數(shù),就必須停止循環(huán),您可以使用break

TA貢獻1853條經(jīng)驗 獲得超9個贊
使用流:
static String findNumber(List<Integer> arr, int k) {
return arr.stream()
.filter(e -> e == k)
.findFirst()
.map(e -> "YES")
.orElse("NO");
}

TA貢獻1859條經(jīng)驗 獲得超6個贊
嘗試優(yōu)化您的代碼....
方式 1(使用 for-each 循環(huán)):
static String findNumber(List<Integer> arr, int k) {
for (Integer integer : arr) {
if (integer == k) {
return "YES";
}
}
return "NO";
}
另一種方法是(使用三元運算符):
static String findNumber(List<Integer> arr, int k) {
return arr.contains(k) ? "YES" : "NO";
}

TA貢獻1835條經(jīng)驗 獲得超7個贊
你的代碼的主要問題是,即使它在 ArrayList 中找到了一個整數(shù)對象,在設置 res = Yes 之后,它仍然繼續(xù)迭代。因此,有可能列表中有其他值不是所需的數(shù)據(jù)類型,從而將 res 設置回否。這里的解決方案是使用跳轉(zhuǎn)語句,例如 break,它會在出現(xiàn)時立即終止循環(huán)過程。遇到整數(shù)。希望能幫助到你!
添加回答
舉報