2017-04-12 41 views
1

这是迄今为止我所拥有的扫描仪,用于从1到100之间的1000个数字的文件中读取所有数字。我只是有点卡住了我应该走哪个方向。使用ArrayLists计算文件中整数的出现次数

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(); 
    } 
} 

回答

1

下面是例子,说明如何用扫描仪读取字符串值:

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); 
    } 

你可以阅读你的整数作为字符串值,并将其解析为整数。

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),也可以简单的读文件作为字符串,然后后来解析它来在上述溶液中所描述的整数。