设计一个方法M4
,它取一个数组A
的双精度值和一个双精度值d
,如果在d
中找不到A
,则返回true如果在d
A
,则为false
示例:
`M49({1.0, 4.5, 7.7, 0.3, 2.1},7.7)`//should return false
答案 0 :(得分:2)
您只需要一个简单的notContains
函数吗?
Java 7 +:
private boolean notContains(final double[] array, final double n) {
for (double x : array) {
if (x == n) return false;
}
return true;
}
Java 8 + 使用Streams API:
private boolean notContains(final double[] array, final double n) {
return Arrays.stream(array).noneMatch(x -> x == n);
}
用法:
final double[] array = {1.0, 4.5, 7.7, 0.3, 2.1};
System.out.println("Result is: " + notContains(array, 7.7)); // ==> false
System.out.println("Result is: " + notContains(array, 7.2)); // ==> true
答案 1 :(得分:1)
以上答案是正确的。您也可以使用可变长度参数(...)作为目的,但这种类型的参数的一个限制是方法中的最后一个。
public static boolean notFind(double n,double ...arr){
for(double d:arr){
if(d==n)
return false;
}
return true;
}
及其用法
double[] array = {1.0, 4.5, 7.7, 0.3, 2.1};
System.out.println(notFind(7.7, array)); //false
System.out.println(notFind(7.2, array)); //true