Java 长度可变的数组

Java 长度可变的数组,java,arrays,Java,Arrays,我想创建一个长度可变的数组。 我的想法(行不通,而且很难看): 我想你到目前为止理解了我的代码。肯定有一种方法更容易,更短,更漂亮,但我就是不能得到它。。。 (欢迎使用代码)。这是(IMO)在switch语句中非常有用的“经典”示例(另请参见) 或者,使用列表您所说的“数组长度是变量的位置”是什么意思?数组的长度是一个数字,但如果您愿意,可以将此数字存储在变量中。通常没有必要,因为您可以编写punkte.length来获取长度。这是创建动态大小数组的家庭作业吗?您必须自己实现吗?如果没有,只需使

我想创建一个长度可变的数组。 我的想法(行不通,而且很难看):

我想你到目前为止理解了我的代码。肯定有一种方法更容易,更短,更漂亮,但我就是不能得到它。。。 (欢迎使用代码)。

这是(IMO)在switch语句中非常有用的“经典”示例(另请参见)


或者,使用
列表

您所说的“数组长度是变量的位置”是什么意思?数组的长度是一个数字,但如果您愿意,可以将此数字存储在变量中。通常没有必要,因为您可以编写
punkte.length
来获取长度。这是创建动态大小数组的家庭作业吗?您必须自己实现吗?如果没有,只需使用
ArrayList
,这正是
ArrayList
所做的。我不知道您到底想要实现什么,但您正在反复重新分配
punkte[0]
。当然,这是没有道理的。
    int y = 7-getY();   
    Point[] punkte = new Point[y];              
    Point punkt = new Point(getX(), getY()+y);

         if(y==1){
            punkte[0]=punkt;                            
            return punkte;
            }

        if(y==2) {
            punkte[0]=punkt;
            punkte[0]=punkt2;
            return punkte;
        }

        if(y==3) {
            punkte[0]=punkt;
            punkte[0]=punkt2;
            punkte[0]=punkt3;
            return punkte;
        }
        if(y==4) {
        punkte[0]=punkt;
        punkte[0]=punkt2;
        punkte[0]=punkt3;
        punkte[0]=punkt4;
        return punkte;
    }

    if(y==5) {
        punkte[0]=punkt;
        punkte[0]=punkt2;
        punkte[0]=punkt3;
        punkte[0]=punkt4;
        punkte[0]=punkt5;
        return punkte;
    }

    if(y==6) {
        punkte[0]=punkt;
        punkte[0]=punkt2;
        punkte[0]=punkt3;
        punkte[0]=punkt4;
        punkte[0]=punkt5;
        punkte[0]=punkt6;
        return punkte;
    }

    if(y==7) {
        punkte[0]=punkt;
        punkte[0]=punkt2;
        punkte[0]=punkt3;
        punkte[0]=punkt4;
        punkte[0]=punkt5;
        punkte[0]=punkt6;
        punkte[0]=punkt7;
        return punkte;
    }
int y = 7 - getY();
Point[] punkte = new Point[y];
Point punkt = new Point(getX(), getY() + y);
// ...
switch(y) {
case 7: punkte[6] = punkt7;
case 6: punkte[5] = punkt6;
case 5: punkte[4] = punkt5;
case 4: punkte[3] = punkt4;
case 3: punkte[2] = punkt3;
case 2: punkte[1] = punkt2;
case 1: punkte[0] = punkt;
}
return punkte;