Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回在另一个方法中创建的数组_Java_Arrays_Methods_Global_Local - Fatal编程技术网

Java 返回在另一个方法中创建的数组

Java 返回在另一个方法中创建的数组,java,arrays,methods,global,local,Java,Arrays,Methods,Global,Local,由于赋值限制,我需要能够通过getter方法(即getArray())返回一个数组,该方法必须在另一个方法中本地创建(因为它的大小取决于该方法中的其他函数)。本质上,我有一个固定容量的数组,我用从用户输入中获取的令牌填充该数组,然后需要创建另一个数组,该数组的大小与令牌的数量相同(不再有空值)。出于某种原因,必须在扫描输入令牌的方法中创建较小的数组,但我不知道如何将最终数组传递给getter方法,因为我无法全局初始化数组的大小 编辑: 我确实用一个全局变量创建了较小的数组。该变量从零开始,并在每

由于赋值限制,我需要能够通过getter方法(即getArray())返回一个数组,该方法必须在另一个方法中本地创建(因为它的大小取决于该方法中的其他函数)。本质上,我有一个固定容量的数组,我用从用户输入中获取的令牌填充该数组,然后需要创建另一个数组,该数组的大小与令牌的数量相同(不再有空值)。出于某种原因,必须在扫描输入令牌的方法中创建较小的数组,但我不知道如何将最终数组传递给getter方法,因为我无法全局初始化数组的大小

编辑: 我确实用一个全局变量创建了较小的数组。该变量从零开始,并在每次找到令牌时递增,因此较小的数组是合适的大小。赋值规则强制我在执行扫描的方法中声明数组,因此数组被强制为本地数组。它必须在scanning方法中声明,并在getter方法中返回,我不知道如何协调这两者

我使用对象数组,因为数组项是各种相似但不同的对象

int itemsScanned = 0;

public void scanStuff(){
//does the scanning

    Object[] array = new Object[itemsScanned]
    int arrayIndex = 0;
    while (arrayIndex < itemsScanned){
        array[arrayIndex] = largeArray[arrayIndex];
        arrayIndex++;
    }
}

public Object[] getArray(){
    return array
}
int itemscanned=0;
公共物品{
//进行扫描吗
Object[]数组=新对象[itemsScanned]
int-arrayIndex=0;
while(arrayIndex
现在
数组
是一个局部变量。其他方法无法使用它。你需要在课堂上将其设置为一个字段

class A {
    Object[] array;
    public void scan() {
        array = new Object[]{this};
    }

    public Object[] getArray() {
        return array;
    }
}

“全局初始化数组大小”是什么意思?你可以用一个变量将数组初始化为给定的大小。请发布你到目前为止的想法-这将更清楚你从哪里得到了stuckJava没有全局变量。你是说类变量(静态变量)吗?最好是显示类。我必须多次使用scan方法,该声明是否允许我为每次扫描中不同数量的元素定义数组的大小?
array
只是指向数组的指针。注意我是如何创建一个新数组并将其分配给
scan()
中的引用的。大小与实际数组的大小相同。请注意,此代码对于多线程使用是不安全的。