我正在尝试制作一个允许我操作多变量多项式的程序。我希望能够处理具有多个变量的表达式,并且每个变量都有自己的指数。例如,多项式对象的一个示例将包含来自5x ^ 2 * y ^ 3的信息。
我想将这个多项式的信息存储在实例变量中:系数为int,变量为String [],每个变量的指数为int []。
我如何连接两个数组以将每个变量与它自己的指数相关联?我不想让变量和它的指数在不同数组的相同索引中。我想知道如何有一个更有保障的方式来正确处理数据。
答案 0 :(得分:1)
使用具有新类的单个数组,如下所示
public class Element {
private String variable;
private int coefficient;
private int exponent;
...
}
然后您可以创建如下数组:
public Element[] elements;
请注意,您从未谈论过运算符......可能您需要在该结构中添加更多内容以了解元素之间的运算符。
答案 1 :(得分:0)
根据项目的实施情况,在两者之间创建可靠连接的需求可能无关紧要。我将提供一个示例,因为有一种简单的方法可以引用两个数组并获取匹配的数据。
int[] coefficients = ...
String[] exponents = ...
对于引用,假设您想要第二个多项式...您需要做的就是在两个数组中引用相同的位置以获得匹配值。只需确保在tandum中更新数组,这样它们就不会失去同步。我可能会建议一种更新它们的具体方法。
//Do some action
coefficients[1].action
exponents[1].action
答案 2 :(得分:0)
为什么不创建多项式类:
Public class Polynomial {
int coefficient;
String variables [];
int exponents [];
public Polynomial (int coeff, String [] var, int [] expo) {...}
然后只有一个多项式对象数组..
多项式多项式[] =新的多项式[200];
然后,您的所有数据都保存在必要的对象中,并且可以轻松访问或维护。如果您需要动态存储解决方案,请使用ArrayList。
答案 3 :(得分:0)
首先创建一个POJO类,将多项式变量存储在系数,变量, exponent 字段中。
然后从另一个班级打电话给他们;
这是POJO类,我称之为Element;
public class Element {
private double coefficient;
private int exponent;
private String variable;
public Element(double coefficient, String variable, int exponent ) {
this.coefficient = coefficient;
this.variable = variable;
this.exponent = exponent;
}
public double getCoefficient() {
return coefficient;
}
public void setCoefficient(double coefficient) {
this.coefficient = coefficient;
}
public String getVariable() {
return variable;
}
public void setVariable(String variable) {
this.variable = variable;
}
public int getExponent() {
return exponent;
}
public void setExponent(int exponent) {
this.exponent = exponent;
}
}
测试代码如下;
public class TestPolynomials {
public static void main(String[] args) {
Element[] polynomialList = { new Element(5,"x",2), new Element(1,"y",3), new Element(6,"1",0) };
printPolynomials(polynomialList);
}
public static void printPolynomials( Element[] pList ) {
for( int i = 0; i < pList.length; i++ ) {
System.out.printf("%2.1f*%s*%d, ", pList[i].getCoefficient(), pList[i].getVariable(), pList[i].getExponent() );
}
}
}
输出如下;
5.0*x*2
1.0*y*3
6.0*1*0