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