如何设置包含相关项的数组
How to set up an array with related items
我正在尝试制作一个允许我操作多变量多项式的程序。我希望能够处理具有多个变量且每个变量都有自己的指数的表达式。例如,多项式对象的一个示例将包含来自 5x^2*y^3.
的信息
我想将这个多项式的信息存储在实例变量中:一个 int 表示系数,一个 String[] 表示变量,一个 int[] 表示每个变量的指数。
我将如何链接这两个数组以将每个变量与其自身的指数相关联?我不想让变量和它的指数在不同数组的相同索引中。我想知道如何有一个更有保证的方式来正确处理数据。
使用带有新 class 的单个数组,如下所示
public class Element {
private String variable;
private int coefficient;
private int exponent;
...
}
然后你可以像下面这样创建一个数组:
public Element[] elements;
请注意,您从未谈论过运算符...可能您必须向该结构添加更多内容才能了解元素之间的运算符。
根据项目的实施情况,在两者之间建立牢固联系的需求可能无关紧要。我将提供一个示例,因为有一种简单的方法可以引用两个数组并获取匹配的数据。
int[] coefficients = ...
String[] exponents = ...
对于引用,假设您想要第二个多项式...您需要做的就是引用两个数组中的相同位置以获得匹配值。只要确保串联更新阵列,这样它们就不会不同步。我可能会推荐一种特定的更新方法。
//Do some action
coefficients[1].action
exponents[1].action
为什么不创建多项式 class:
Public class Polynomial {
int coefficient;
String variables [];
int exponents [];
public Polynomial (int coeff, String [] var, int [] expo) {...}
然后只需要一个多项式对象数组..
多项式多项式[] = 新多项式[200];
那么您的所有数据都将保存在必要的对象中,并且可以轻松访问或维护。如果您需要动态存储解决方案,请改用 ArrayList。
首先创建一个 POJO class 以在字段 coefficient, variable, 中存储多项式变量指数.
然后从另一个class;
呼叫他们
这是POJO class,我称之为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
我正在尝试制作一个允许我操作多变量多项式的程序。我希望能够处理具有多个变量且每个变量都有自己的指数的表达式。例如,多项式对象的一个示例将包含来自 5x^2*y^3.
的信息我想将这个多项式的信息存储在实例变量中:一个 int 表示系数,一个 String[] 表示变量,一个 int[] 表示每个变量的指数。
我将如何链接这两个数组以将每个变量与其自身的指数相关联?我不想让变量和它的指数在不同数组的相同索引中。我想知道如何有一个更有保证的方式来正确处理数据。
使用带有新 class 的单个数组,如下所示
public class Element {
private String variable;
private int coefficient;
private int exponent;
...
}
然后你可以像下面这样创建一个数组:
public Element[] elements;
请注意,您从未谈论过运算符...可能您必须向该结构添加更多内容才能了解元素之间的运算符。
根据项目的实施情况,在两者之间建立牢固联系的需求可能无关紧要。我将提供一个示例,因为有一种简单的方法可以引用两个数组并获取匹配的数据。
int[] coefficients = ...
String[] exponents = ...
对于引用,假设您想要第二个多项式...您需要做的就是引用两个数组中的相同位置以获得匹配值。只要确保串联更新阵列,这样它们就不会不同步。我可能会推荐一种特定的更新方法。
//Do some action
coefficients[1].action
exponents[1].action
为什么不创建多项式 class:
Public class Polynomial {
int coefficient;
String variables [];
int exponents [];
public Polynomial (int coeff, String [] var, int [] expo) {...}
然后只需要一个多项式对象数组..
多项式多项式[] = 新多项式[200];
那么您的所有数据都将保存在必要的对象中,并且可以轻松访问或维护。如果您需要动态存储解决方案,请改用 ArrayList。
首先创建一个 POJO class 以在字段 coefficient, variable, 中存储多项式变量指数.
然后从另一个class;
呼叫他们这是POJO class,我称之为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