我正在检查一组坐标(coor
)中是否存在一组坐标(coorArray
)。我已经在其他文章中看到了如何连接2D数组,以便可以在IntStream
中搜索它来寻找一个单独的int
,但是我不确定如何将其转换为我的问题。谢谢您的帮助!
示例数组:
int[][] coorArray = {{1,2},{2,2},{3,0}};
int[] coor = {1,2};
答案 0 :(得分:3)
您可以使用stream().anyMatch()
进行此检查:
int[][] coorArray = {{1,2},{2,2},{3,0}};
int[] coor = {1,2};
boolean exist = Arrays.stream(coorArray).anyMatch(e -> Arrays.equals(e, coor));
System.out.println("exist = " + exist);
输出:
exist = true
否则,当输入数组中不存在坐标时:
int[][] coorArray = {{4,2},{2,2},{3,0}};
int[] coor = {1,2};
boolean exist = Arrays.stream(coorArray).anyMatch(e -> Arrays.equals(e, coor));
System.out.println("exist = " + exist);
输出:
exist = false
答案 1 :(得分:1)
如果您愿意,这里是没有lambda表达式的另一个示例。由每个坐标和每个坐标检查组成。
public static boolean exists(int[][] coords, int[] coord){
for(int[] c : coords){
if(c[0] == coord[0] && c[1] == coord[1]) {
return true;
}
}
return false;
}
我不确定API中是否还有其他可用的功能,但是应该满足要求。