需要创建填充Scanner的ArrayList方法

时间:2017-11-15 21:21:01

标签: java arraylist

我正在尝试使用扫描仪创建一个从数据文件(双重类型)获取输入并填充Arraylist(double)的方法。我在我的主课上创建了一个扫描仪。我不知道如何使这个工作正常,虽然我觉得我差不多了。

这是我的主要和公共课

SELECT (
         SELECT COUNT(eventId) AS voteCount
         FROM (
                SELECT eventId
                FROM Votes
                WHERE arenaId = 'abc123'
                      AND active = 1
                      AND vote = 1
                AND groupA = 1
                GROUP BY userId, eventId
              ) AS t1
       ) AS aVotes1

这是我的方法

import java.util.Scanner;
import java.util.*;
public class Prog11{

public static void main(String [] args){

    Scanner inFile = new Scanner(System.in);
    readArr(inFile);
}

这是剩下的两个错误

public static double[] readArr(Scanner inFile){

    ArrayList <Double> examList = new ArrayList<Double>();

    while(inFile.hasNextDouble()){
        input.add(inFile.nextDouble());
    }

    return examList;

}

2 个答案:

答案 0 :(得分:0)

两个问题。一,你需要返回一个列表,而不是一个数组;第二,你的变量是inFile而不是input

public static List<Double> readList(Scanner inFile){
    List<Double> examList = new ArrayList<Double>();

    while(inFile.hasNextDouble()){
        inFile.add(inFile.nextDouble());
    }

    return examList;

}

如果您必须返回一个数组,请使用

public static double[] readList(Scanner inFile) {
    List<Double> examList = new ArrayList<Double>();

    while(inFile.hasNextDouble()){
        inFile.add(inFile.nextDouble());
    }
    double[] arr = new double[examList.size()];
    for (int i = 0; i < examList.size(); i++) {
        arr[i] = examList.get(i);
    }
    return arr;
}

答案 1 :(得分:-1)

多数民众赞成是因为你没有回复预期的,如果你说你要去double[]并且在方法中你返回arrayList<Double>所以你需要决定你正在重新开始什么。

public static ArrayList <Double> readArr(Scanner inFile){
ArrayList <Double> examList = new ArrayList<Double>();

while(inFile.hasNextDouble()){
     input.add(inFile.nextDouble());
 }

 return examList;

 }