如何设置包含相关项的数组

时间:2015-06-17 12:42:50

标签: java arrays polynomials

我正在尝试制作一个允许我操作多变量多项式的程序。我希望能够处理具有多个变量的表达式,并且每个变量都有自己的指数。例如,多项式对象的一个​​示例将包含来自5x ^ 2 * y ^ 3的信息。

我想将这个多项式的信息存储在实例变量中:系数为int,变量为String [],每个变量的指数为int []。

我如何连接两个数组以将每个变量与它自己的指数相关联?我不想让变量和它的指数在不同数组的相同索引中。我想知道如何有一个更有保障的方式来正确处理数据。

4 个答案:

答案 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