Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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 - Fatal编程技术网

Java 数组未调整大小

Java 数组未调整大小,java,Java,我正在尝试使用名为resize()的方法调整数组[]的大小。我想我已经正确地编码了这个方法,但是在运行了这个方法之后,原始数组没有调整大小,我也不确定我做错了什么 我已经测试过newArr[]的长度实际上是oldArr[]的两倍,并且包含oldArr[]的值,但是我不明白为什么它不影响main方法中的wordList[] 我的任务是使用数组而不是ArrayList,所以使用它是不可能的 infile = new BufferedReader( new FileReader(infileName)

我正在尝试使用名为resize()的方法调整数组[]的大小。我想我已经正确地编码了这个方法,但是在运行了这个方法之后,原始数组没有调整大小,我也不确定我做错了什么

我已经测试过newArr[]的长度实际上是oldArr[]的两倍,并且包含oldArr[]的值,但是我不明白为什么它不影响main方法中的wordList[]

我的任务是使用数组而不是ArrayList,所以使用它是不可能的

infile = new BufferedReader( new FileReader(infileName) );
while (infile.ready()) {

    String s = infile.readLine();
    System.out.println(wordList.length);
    System.out.println(count);
    wordList[count] = s;

    if(s.length() > lenOfLongest)
        lenOfLongest = s.length();

    if(s.length() < lenOfShortest)
        lenOfShortest = s.length();

    count++;

    if(count == wordList.length)
            resize(wordList);
}

private static String[] resize( String[] oldArr ) {
    String[] newArr = new String[oldArr.length * 2];
    System.out.println(newArr.length);

    for(int i = 0;i < oldArr.length; i++) {
        newArr[i] = oldArr[i];
    }

    return newArr;

}
infle=newbufferedreader(newfilereader(infleename));
while(infle.ready()){
字符串s=infle.readLine();
System.out.println(wordList.length);
系统输出打印项次(计数);
字表[count]=s;
如果(s.length()>lenOfLongest)
lenOfLongest=s.长度();
如果(s.长度()
因为您没有将返回的数组分配给任何对象。必须如下所示

String[] temp = resize(wordList);

因为您没有将返回的数组分配给任何对象。必须如下所示

String[] temp = resize(wordList);
应该是:

if(count == wordList.length)
        wordList = resize(wordList);
有关更多详细信息,请参阅

应该是:

if(count == wordList.length)
        wordList = resize(wordList);

有关更多详细信息,请参见。

正如@pad在其评论中所说:您不能重新分配到
单词列表

您的
resize()
方法将返回一个新数组。因此,您应该重新评估
单词列表


一般来说,数组在Java中是不可调整大小的。

正如@pad在他的评论中所说:您不需要重新分配到
单词列表

您的
resize()
方法将返回一个新数组。因此,您应该重新评估
单词列表


一般来说,数组在Java中不可调整大小。

try wordList=resize(wordList);看到Fouads的答案,你的方法会返回一些立即被丢弃的东西,你需要将你的单词列表指向返回值。try wordlist=resize(wordlist);请看Fouads的答案,您的方法返回的是立即丢弃的内容,您需要将您的单词列表指向返回值。