[英]Writing a contains method in java
package homework1;
//author Kyle Fields
public class HomeWork1{
public static void main(String[] args) {
int [ ] input = { 100, 37, 49 };
boolean result1 = contains( input, new Prime( ) );
boolean result2 = contains( input, new PerfectSquare( ) );
boolean result3 = contains( input, new Negative( ) );
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
}
static boolean contains(int[] array, Condition condition) {
return (condition(array));
}
}
package homework1;
/**
*
* @author Kyle Fields
*/
public interface Condition {
boolean makeYourCondition(int[] input);
}
package homework1;
/**
*
* @author Kyle Fields
*/
public class Prime implements Condition {
@Override
public boolean makeYourCondition(int[] input) {
for (int n : input) {
if (n >= 2) {
if (n == 2) {
return true;
}
for (int i = 2; i <= Math.sqrt(n) + 1; i++) {
if (!(n % i == 0)) {
return true;
}
}
}
}
return false;
}
}
下面的其他课程
package homework1;
/**
*
* @author Kyle Fields
*/
public class PerfectSquare implements Condition {
@Override
public boolean makeYourCondition(int[] input) {
for (int i : input) {
//takes the square root
long SquareRoot = (long) Math.sqrt(i);
//multiplys the sqrt by the sqrt to see if it equals the original
if (((SquareRoot * SquareRoot) == i) == true){
return true;
}
}
return false;
}
}
package homework1;
/**
*
* @author Kyle Fields
*/
public class Negative implements Condition {
boolean Negative(int n){
if (n <= -1){
return true;
}
return false;
}
@Override
public boolean makeYourCondition(int[] input) {
for (int i : input) {
if(i<0) return true;
}
return false;
}
}
我的问题是,如何完成此代码? 含义:我的contains方法需要做什么? (当前,这是在告诉我条件condition(int [])在homework1类中不是有效的方法。)
只要您知道自己在做什么,就可以使用伪代码。 首先,contains()方法需要一个数组和一个Condition并返回一个布尔值。 让我们来写签名
boolean contains(int[] array, Condition condition)
Prime,PerfectSquare和Negative将是Condition的实现,即
interface Condition {
...
}
class Prime implements Condition {
...
}
class PerfectSquare ...
练习的设置提示,在Condition实现中,您应检查参数int value是否满足特定情况; contains()方法遍历数组,如果遇到穷尽列表,则返回“ true”或“ false”。
您可以按照以下步骤编写代码,使用接口协定来完成工作,并照看符合您条件的方法。
public class HomeWork {
public static void main(String[] args) {
int[] arr=new int[] {100, 37, 49};
Condition[] conditions= new Condition[]{
new Negative(),
new Prime(),
new PerfectSquare()
};
for (Condition condition : conditions) {
System.out.println(condition.makeYourCondition(arr));
}
}
}
interface Condition {
boolean makeYourCondition(int[] input);
}
class Negative implements Condition {
@Override
public boolean makeYourCondition(int[] input) {
for (int i : input) {
if(i<0) return true;
}
return false;
}
}
class Prime implements Condition {
@Override
public boolean makeYourCondition(int[] input) {
//TODO PUT YOUR CONDITION
return false;
}
}
class PerfectSquare implements Condition {
@Override
public boolean makeYourCondition(int[] input) {
//TODO PUT YOUR CONDITION
return false;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.