2017-04-12 68 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),也可以簡單的讀文件作爲字符串,然後後來解析它來在上述溶液中所描述的整數。