使用ArrayLists计算文件中整数的出现次数

时间:2017-04-12 05:01:40

标签: java

这是我到目前为止所拥有的,我只有一台扫描仪,可以读取1- 100之间1000个数字的文件中的所有数字。我只是有点卡在我应该去的方向。

import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;
public class ArrayListProb
{
   public static void main(String[] args)throws IOException
   {
      File file = new File("number.txt");
      Scanner reader = new Scanner(file);

      ArrayList<Integer> numList = new ArrayList<Integer>(1000); //declare     ArrayList with 1000 numbers

  while(reader.hasNext()) //add the numbers to ArrayList
  {
     numList.add(reader.nextInt());
  }
  reader.close();
   }
}

2 个答案:

答案 0 :(得分:1)

以下是显示如何使用Scanner读取字符串值的示例:

public static void main(String[] args) throws IOException {
        File file = new File("C:\\createtable.sql");
        ArrayList<String> list = new ArrayList<String>(1000);
        try (Scanner reader = new Scanner(file)) {

            while (reader.hasNext()) // add the numbers to ArrayList
            {
                list.add(reader.next());
            }
        }
        System.out.println(list);
    }

您可以将整数读取为String值并将其解析为Integer。

答案 1 :(得分:1)

数组列表不支持这种方法的整数,所以你有两个选项 1)您可以使用Map而不是Arraylist,然后执行以下代码。

Map<Integer, Integer> myMap = new HashMap<Integer, Integer>();
while (inputFile.hasNext()){
    Integer next = inputFile.nextInt();
    if (myMap.containsKey(next)){
        myMap.put(next, myMap.get(next) + 1);
    }else{
        myMap.put(next, 1);
    }
}

2)或者您可以简单地将文件读取为字符串,然后将其解析为整数,如上述解决方案中所述。