如何从数组中获取要在另一个类中使用的值?

时间:2015-01-11 05:31:14

标签: java arrays class parameters constructor

如果有一个数组如:

//....
int[] anArray;
anArray = new int[3];
anArray[0] = new otherClassWConst( x, y , z);
anArray[1] = new otherClassWConst( x, y , z);
anArray[2] = new otherClassWConst( x, y , z);
//....

x和y和z的值都与数组中其他对象的x,y和z的值不同。 (这有意义吗?就像anArray [0]中x的值与anArray [2]中的值不同。 注意:有一个来自另一个类的构造函数需要这些参数,我不确定这是否重要

如何在不同的类中获取每个数组值中的一个参数(例如,y的值)的值。因为,是否有一种方法可以获得Y的所有三个值,所以我可以将它们全部添加到另一个类中?

例如

//code attaining only the y values of the array
overallValueOfY = Y + Y + Y; // or something of that nature
//life continues over here.

如果不清楚,请告诉我,我努力解释。谢谢你的考虑。

4 个答案:

答案 0 :(得分:0)

OtherClassConst需要为它提供一个get方法:

public class OtherClassConst {
    private int x;
    private int y;
    private int x;

    public (int x, int y, int z) {
        this.x = x;
        this.y = y;
        this.z = z;
    }

    public int getY() {
        return y;
    }
    /* Same concept for getX() and getZ() */
}

然后,你上课可以称之为:

int sumY = 0;
for (OtherClassConst c : myArray) {
    sumY += c.getY();
}

答案 1 :(得分:0)

首先,除非您的新类扩展为Int,否则您的数组将无法工作,我只是想确保您知道这一点。

现在,您所要做的就是在新类中创建一个int varriable

int x;
int y;
int z;

并将它们设置为等于构造函数中的内容。然后创建一个返回值

的新方法
public int getX(){
  return this.x;
}
public int getY(){
  return this.Y;
}
public int getZ(){
  return this.Z;
}

答案 2 :(得分:0)

您需要使用x,y和z实例变量为您的其他类创建POJO,然后使用y的setter方法获取值。迭代它们以获得值的总和。

答案 3 :(得分:0)

如果您的其他OtherClassgetY方法返回一个整数,那么您可以使用以下内容对它们求和:

Arrays.stream(anArray).mapToInt(OtherClass::getY).sum();

使用流而不是循环是值得的。