我知道我可以使用contains()
方法,但我无法弄清楚如何将它用于二维数组以及如何返回某些内容。
现在我的代码看起来像这样:
public class Array {
public static void main(String[] args) {
int z = 2;
int[][] data = new int[1][4];
data[0][0] = 0;
data[0][1] = 3;
data[0][2] = 2;
data[0][3] = 6;
for (int i = 0; i < data[0].length; i++) {
if (data[0][i] == z) {
System.out.println("Array data has z");
}
}
}
}
检查循环是否有效,但我们建议使用contains
方法。
但是我怎么能在我的情况下使用contains方法?
答案 0 :(得分:2)
方法contains()
对Collection
s有效,而不是Array
。
要使用此方法,您需要先将数组转换为集合。由于你有一个二维数组,我建议你遍历它并分析它的每个一维子数组以寻找所需的值。
public boolean containsValue(int[][] data, int z) {
for (int i = 0; i < data.length; i++) {
if (Arrays.asList(data[i]).contains(z)) {
return true;
}
}
return false;
}
另一种方法是使用ArrayUtils.contains()
方法,如果您在项目中使用它,如已显示here。
最后,您可以执行与两个for
块的O(n²)比较,以搜索所需的值,而无需将数组转换为列表的开销,如上所述。但是,我相信上面代码段中显示的方法会更快。