这是我的作业,a)编写一个表示具有int系数a、b、c的二次ax^2 bx c的二次函数。为a、b、c提供一个具有3个int参数的构造函数。提供一个方法double valueAt(double x)返回该二次函数在x的值。还提供一个toString方法。
b) 重写equals方法quadraticmethod类。如果两个二次函数各自的系数相等,则应认为它们相等
c) 使功能对象具有可比性。如果相等,则compareTo应首先比较1如果相等,则比较b如果相等,则比较c
d) 定义一个比较器类,用于比较两个QuadraticFunction对象。提供两个构造函数:一个无参数构造函数和一个接受1个双参数的构造函数。当无参数构造函数创建比较器时,它应该根据x=0时的值比较两个二次函数;当构造器使用参数x创建比较器时,它应该基于它们在x处的值来比较quadraticFunction
这是我的密码
我需要D部分的帮助,我不知道怎么做
public class Ex4
{
int a;
int b;
int c;
public Ex4(int x, int y, int z)
{
a = x; b=y; c=z;
}
public String toString()
{
String X="";
X= X+a+"x^2"+b+"x"+ "+" + c;
return X;
}
public double valueAt(double x)
{
return (a*x*x+b*x+c);
}
//////// Part B
public boolean equals( Ex4 qf )
{
return(this.a==qf.a && this.b==qf.b && this.c==qf.c);
}
/////Part c
// public int compareTo(Ex4 other)
// {
// if (a.equals(other.a))
// {
// if (b.equals(other.b))
// return c.compareTo(other.c);
// return b.comapreTo(other.b);
// }
// return a.compareTo(other.a);
// }
public int compareTo(Ex4 other)
{
if (a > other.a)
return 1;
else if (a < other.a)
return -1;
else if (b > other.b)
return 1;
else if (b < other.b)
return -1;
else if (c > other.c)
return 1;
else if (c < other.c)
return -1;
else
return 0;
}
////Part d
public static void main(String[] args)
{
System.out.println(new Ex3(1, -5, 6));
}
}
此外,在c部分下的代码区域取消注释中,它表示int不能在第29、31、32、33和35行取消引用,感谢您的帮助
试试这个
import java.util.Comparator;
public class Ex4Comparator implements Comparator<Ex4> {
private double x = 0.0;
public Ex4Comparator() {
}
public Ex4Comparator(double x) {
this.x = x;
}
@Override
public int compare(Ex4 o1, Ex4 o2) {
return Double.compare(o1.valueAt(x), o2.valueAt(x));
}
}
此外,equals方法不会重写对象的equals方法。您可能想将其更改为
@Override
public boolean equals(Object o) {
if (o instanceof Ex4) {
Ex4 other = (Ex4)o;
return (a == other.a && b == other.b && c == other.c);
}
return false;
}
首先,编写自定义比较器并不太难;您需要了解一个的基本结构。
想法是这样的:它读起来有点像你在写一个可比较的实体。
class CustomComparator implements Comparator<Ex4> {
@Override
public int compare(Ex4 left, Ex4 right) {
// Compare the entities as specified by the assignment
}
}
然后,您需要接受它作为构造函数参数。这是我留给读者的练习。
现在,我们来讨论一下语法问题:您将原语int视为整数,它有一个equals方法。基本体不是对象,因此不能取消引用。您需要使用普通等价运算符(==,
编辑:在重新阅读您的需求后,我开始认为您的原始字段不是正确的方法。您应该:
将字段从int更改为Integer
您不能在原语上调用方法,无论是普通的还是简单的。
更好的选择是使用整数的静态方法,Integer.compare(int a, int b)
来比较两个整数。
本文向大家介绍Python3.x中自定义比较函数,包括了Python3.x中自定义比较函数的使用技巧和注意事项,需要的朋友参考一下 在Python3.x的世界里,cmp函数没有了。那么sorted,min,max等需要比较函数作为参数的函数该如何用呢? 以min函数的定义为例,有两种重载形式: 单参数(一个迭代器): 多参数(多个待比较内容): 本文主要讨论key=func参数的使用 。举例说明吧
如果两个集合包含相同的对象,如何进行比较? 当然会打印错误。
如何使用Comparator对对象的ArrayList进行正确排序,然后将排序后的数组传递给自定义数组适配器? 我试过这样做: ArrayList的内容类: 比较器: 在OnCreate中设置适配器: ...因为我使用的是定制的ArrayAdapter,就像: 我需要如何修改此适配器以使其与其他适配器一起工作? 谢谢你的帮助。
我正在尝试创建一个二进制搜索程序,该程序可以使用各种类型的变量(int、float、string等)来查看数组中是否存在元素。我正试图找出如何比较变量。下面是我正在使用的内容的草图: 我甚至不确定使用对象是否是最好的方法。
问题内容: 我必须将对象与预定义类的列表进行比较。 使用安全还是应该使用? 注意: 我不能使用,我没有对象,我只有对象。在这种情况下,我会像枚举一样使用它! 问题答案: 不会覆盖来自的方法,该方法是这样实现的: 因此与(除非为null)相同。
ObjectHolder类型的对象中的多用途字段包含对象OBJ。obj可能存储包装的基元或基元数组。如果两个对象是数组,我们如何比较它们?一个简化的例子: