gpt4 book ai didi

java - 错误: variable might not have been initialized - How to initialize ArrayList?

转载 作者:行者123 更新时间:2023-12-01 17:51:59 33 4
gpt4 key购买 nike

我已经查看了之前所有与此标题类似的问题,但我找不到解决方案。所有错误都表明我没有初始化 ArrayList。我是否没有像 = new ArrayList<Double> 这样初始化 ArrayList? ?

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
import java.io.PrintWriter;

public class main
{
public static void main (String[] args) throws FileNotFoundException
{
ArrayList<Double> RPM, bCoeffs, filteredRPM = new ArrayList<Double>();
Scanner RPMFile = new Scanner(new File("RotationSpeed.txt"));

while(RPMFile.hasNextLine()){
String line = RPMFile.nextLine();

Scanner scanner = new Scanner(line);
scanner.useDelimiter(",");
while(scanner.hasNextDouble()){
RPM.add(scanner.nextDouble());
}
scanner.close();
}
RPMFile.close();

int windowSize = 10;
int filterItterations = 1;

for (int i = 0; i < windowSize; i++){
double temp = 1/windowSize;
bCoeffs.add(temp);
}

for (int k = 1; k <= filterItterations; k++){
if (k == 1){
for (int n = windowSize; n < RPM.size(); n++){
int m = 0;
double tempYSum = 0;
for (int j = 0; j < windowSize; j++){
double tempY = (bCoeffs.get(j))*(RPM.get(n-m));
tempYSum += tempY;
m++;
}
filteredRPM.add(tempYSum);
}
}else{
int i = 1;
for (int n = windowSize; n < filteredRPM.size(); n++){
int m = 0;
double tempYSum = 0;
for (int j = 0; j < windowSize; j++){
double tempY = (bCoeffs.get(j))*(filteredRPM.get(n-m));
tempYSum += tempY;
m++;
}
filteredRPM.set(i, tempYSum);
i++;
}
}
}
}
}

我收到的错误如下:

main.java:20: error: variable RPM might not have been initialized
RPM.add(scanner.nextDouble());
^
main.java:31: error: variable bCoeffs might not have been initialized
bCoeffs.add(temp);
^
main.java:36: error: variable RPM might not have been initialized
for (int n = windowSize; n < RPM.size(); n++){
^
main.java:40: error: variable bCoeffs might not have been initialized
double tempY = (bCoeffs.get(j))*(RPM.get(n-m));
^
main.java:52: error: variable bCoeffs might not have been initialized
double tempY = (bCoeffs.get(j))*(filteredRPM.get(n-m));
^
5 errors

最佳答案

只需分配变量:您当前声明了 3 个变量,但只为最后一个变量分配了值。

ArrayList<Double> RPM = new ArrayList<>(), bCoeffs = new ArrayList<>(), filteredRPM = new ArrayList<>();

请注意,有些人不鼓励在同一行声明许多变量,例如it is forbidden by Google's style guide :如果每行写一个,会更容易阅读:

ArrayList<Double> RPM = new ArrayList<>();
ArrayList<Double> bCoeffs = new ArrayList<>();
ArrayList<Double> filteredRPM = new ArrayList<>();

关于java - 错误: variable might not have been initialized - How to initialize ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49072803/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com