为了账号安全,请及时绑定邮箱和手机立即绑定

在java中搜索arraylist中的整数

在java中搜索arraylist中的整数

呼啦一阵风 2023-03-31 15:09:43
public class FindNumber {            static String findNumber(List<Integer> arr, int k) {                String res = "YES";    //Unable to identify problem with this part of the code                for (int i = 0; i < arr.size(); i++) {                    if (k == arr.get(i))                        res = "YES";                    else                        res = "NO";                }                return res;            }}即使整数存在于列表中,上面的代码也会返回 NO 作为答案。
查看完整描述

5 回答

?
米脂

TA贡献1836条经验 获得超3个赞

您可以只使用来获取是否在列表中的arr.contains()布尔值。Integer然后您可以将此值转换为YESor NO(如果您确实需要它):

String yesNo = arr.contains(k) ? "YES" : "NO";


查看完整回答
反对 回复 2023-03-31
?
青春有我

TA贡献1784条经验 获得超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;


        }

一旦找到整数,就必须停止循环,您可以使用break


查看完整回答
反对 回复 2023-03-31
?
暮色呼如

TA贡献1853条经验 获得超9个赞

使用流:


static String findNumber(List<Integer> arr, int k) {

    return arr.stream()

        .filter(e -> e == k)

        .findFirst()

        .map(e -> "YES")

        .orElse("NO");

}


查看完整回答
反对 回复 2023-03-31
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

尝试优化您的代码....


方式 1(使用 for-each 循环):


 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";

}


查看完整回答
反对 回复 2023-03-31
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

你的代码的主要问题是,即使它在 ArrayList 中找到了一个整数对象,在设置 res = Yes 之后,它仍然继续迭代。因此,有可能列表中有其他值不是所需的数据类型,从而将 res 设置回否。这里的解决方案是使用跳转语句,例如 break,它会在出现时立即终止循环过程。遇到整数。希望能帮助到你!



查看完整回答
反对 回复 2023-03-31
  • 5 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信