Java 返回在另一个方法中创建的数组
由于赋值限制,我需要能够通过getter方法(即getArray())返回一个数组,该方法必须在另一个方法中本地创建(因为它的大小取决于该方法中的其他函数)。本质上,我有一个固定容量的数组,我用从用户输入中获取的令牌填充该数组,然后需要创建另一个数组,该数组的大小与令牌的数量相同(不再有空值)。出于某种原因,必须在扫描输入令牌的方法中创建较小的数组,但我不知道如何将最终数组传递给getter方法,因为我无法全局初始化数组的大小 编辑: 我确实用一个全局变量创建了较小的数组。该变量从零开始,并在每次找到令牌时递增,因此较小的数组是合适的大小。赋值规则强制我在执行扫描的方法中声明数组,因此数组被强制为本地数组。它必须在scanning方法中声明,并在getter方法中返回,我不知道如何协调这两者 我使用对象数组,因为数组项是各种相似但不同的对象Java 返回在另一个方法中创建的数组,java,arrays,methods,global,local,Java,Arrays,Methods,Global,Local,由于赋值限制,我需要能够通过getter方法(即getArray())返回一个数组,该方法必须在另一个方法中本地创建(因为它的大小取决于该方法中的其他函数)。本质上,我有一个固定容量的数组,我用从用户输入中获取的令牌填充该数组,然后需要创建另一个数组,该数组的大小与令牌的数量相同(不再有空值)。出于某种原因,必须在扫描输入令牌的方法中创建较小的数组,但我不知道如何将最终数组传递给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()
中的引用的。大小与实际数组的大小相同。请注意,此代码对于多线程使用是不安全的。