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

查看 int[][] 是否包含特定值

查看 int[][] 是否包含特定值

慕田峪9158850 2022-07-06 17:29:11
我有两个整数值'a'和'b'我还有一个名为“keys”的 int[][]。它包含数字值,例如 { 0, 1 } 和 { 1, 2 }我将如何查看'keys'是否包含a,b的组合?到目前为止我已经尝试过:if (keys.contains({a, b}){    break;}这在 {a,b} 处给了我一个非法的表达式开始错误
查看完整描述

3 回答

?
鸿蒙传说

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

我建议转换int[][]为List<List<Integer>>然后您可以使用该contains方法检查组合


int[][] arr = {{1,2},{3,4}};


    List<Integer> check = Arrays.asList(1,2);


    List<List<Integer>> keys = Arrays.stream(arr)

                               .map(i->Arrays.stream(i).boxed().collect(Collectors.toList()))

                               .collect(Collectors.toList());  //[[1, 2], [3, 4]]


    System.out.println(keys.contains(check));     //true


查看完整回答
反对 回复 2022-07-06
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

public boolean contains(int a, int b, int[][] keys)

{

    for (int i = 0; i < keys.length; i++)

    {

        if (keys[i][0] == a && keys[i][1] == b)

        {

            return true;

        }

    }


    return false;

}



查看完整回答
反对 回复 2022-07-06
?
月关宝盒

TA贡献1772条经验 获得超5个赞

由于您的数组是 2*2,因此您可以执行此操作来检查匹配项。


        int a[][] = new int[100][100];

        int keyToCompare = 10;

        int valueToCompare = 20;

        for(int i = 0;i<a.length;i++){

            if(a[i][0] == keyToCompare && a[i][1] == valueToCompare ){

                  //match found

            }

        }


查看完整回答
反对 回复 2022-07-06
  • 3 回答
  • 0 关注
  • 161 浏览

添加回答

举报

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