用java编写contains方法

用java编写contains方法,java,arrays,generics,contains,Java,Arrays,Generics,Contains,} } 一揽子家庭作业1; /** * *@作者凯尔·菲尔兹 */ 公共接口条件{ 布尔条件(int[]输入); } 一揽子家庭作业1; /** * *@作者凯尔·菲尔兹 */ 公共类素数条件{ @凌驾 公共布尔makeYourCondition(int[]输入){ 对于(int n:input){ 如果(n>=2){ 如果(n==2){ 返回true; } 对于(inti=2;i而言,只要您知道自己在做什么,伪代码就可以了。 首先是contains()方法,它接受一个数组和一个条件并返回一个布

}

}
一揽子家庭作业1;
/**
*
*@作者凯尔·菲尔兹
*/
公共接口条件{
布尔条件(int[]输入);
}
一揽子家庭作业1;
/**
*
*@作者凯尔·菲尔兹
*/
公共类素数条件{
@凌驾
公共布尔makeYourCondition(int[]输入){
对于(int n:input){
如果(n>=2){
如果(n==2){
返回true;
}

对于(inti=2;i而言,只要您知道自己在做什么,伪代码就可以了。 首先是contains()方法,它接受一个数组和一个条件并返回一个布尔值

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;
    }

}
Prime、PerfectSquare和Negative将是条件的实现,即

boolean contains(int[] array, Condition condition)

该练习的设置提示,在条件实现中,您应该检查参数int值是否满足特定情况;contains()方法在数组中迭代,如果遇到“true”或“false”,则返回如果耗尽了列表。

您可以按如下方式编写代码,使用接口的契约来完成此工作,注意符合您条件的方法

interface Condition {
...
}

class Prime implements Condition {
...
}

class PerfectSquare ...
公共课堂作业{
公共静态void main(字符串[]args){
int[]arr=新的int[]{100,37,49};
条件[]条件=新条件[]{
新负数(),
新素数(),
新完美广场()
};
用于(条件:条件){
System.out.println(condition.makeYourCondition(arr));
}
}
}
界面条件{
布尔条件(int[]输入);
}
类负实现条件{
@凌驾
公共布尔makeYourCondition(int[]输入){
for(int i:输入){

如果(在问题中,这些不是方法,它们是类。这就是你的老师将它们放在
PascalCase
中的原因。你应该实现控制模式的反转,而不是硬编码方法。要了解这应该是什么样子,请看一看,以及它如何与它们交互。你应该阅读ercise:您需要创建一个类
Prime
,而不是一个方法
Prime()
。所有这些类都应该实现一个公共接口,例如
Test
,它定义了一个方法来检查给定的int(或者,在练习2中,任何类型)完成类的测试,例如,对于
Prime
它测试数字是否为Prime。你不能将
new
与方法一起使用。事实上,
Prime
和其他应该是类!这个问题似乎是离题的,因为它是关于家庭作业的。OP有一个答案描述了解决方案,另一个答案几乎是f编辑它。OP发布了更新的代码要求更多帮助。这不是一个家庭作业网站。你有代码重复-这不是我想的。
谓词
应该只检查一个
int
-然后
包含
方法应该做循环。在任何情况下,填鸭式回答家庭作业问题我的意图不是做作业,而是展示另一种做作业的方式。
boolean contains(int[] array, Condition condition)
interface Condition {
...
}

class Prime implements Condition {
...
}

class PerfectSquare ...
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;
    }

}