2017-03-07 87 views
0

作爲我的HOMEWORK的一部分,我試圖讀取一個由汽車模型組成的文件,並將每個文件的總數輸出到控制檯。使用集合和地圖來讀取文本文件

我已經實現了這一點,通過使用一個映射與模型名稱作爲鍵和計數器作爲值。

雖然,現在我只想輸出添加到Set的模型。 因此,如果Fiat在文件中,它不會被使用,因爲它不在允許的Set中。

希望這是有道理的和幫助表示讚賞。

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Map; 
import java.util.Scanner; 
import java.util.Set; 
import java.util.TreeMap; 
import java.util.TreeSet; 

public class Test 
{ 

public static void main(String[] args) throws FileNotFoundException 
{ 
    TreeMap<String, Integer> map = new TreeMap<String, Integer>(); 
    Set<String> fruit = new TreeSet<String>(); 
    fruit.add("BMW"); 
    fruit.add("Mercedes"); 
    fruit.add("Ford"); 
    fruit.add("Nissan"); 
    fruit.add("Tesla"); 

    File inputFile = new File("input.txt"); 
    Scanner in = new Scanner(inputFile); 

    while (in.hasNext()) 
    { 
     String word = in.next(); 
     if (map.containsKey(word)) 
     { 
      int count = map.get(word) + 1; 
      map.put(word, count); 
     } 
     else 
     { 
      map.put(word, 1); 
     } 
    } 
    in.close(); 

    for (Map.Entry<String, Integer> entry : map.entrySet()) 
    { 
     System.out.println(entry); 
    } 
    } 
} 

回答

1

你可以遍歷你的設置,然後調用地圖的「get」方法。

例如

for (String car : fruit) { 
    Integer value = map.get(car); 
    if (value != null) { 
     System.out.println(value); 
    } 
} 

如果結果不爲空,則將其打印到控制檯,否則查找下一個。

0

試試這個,

TreeMap<String, Integer> map = new TreeMap<String, Integer>(); 
    Set<String> fruit = new TreeSet<String>(); 
    fruit.add("BMW"); 
    fruit.add("Mercedes"); 
    fruit.add("Ford"); 
    fruit.add("Nissan"); 
    fruit.add("Tesla"); 

    map.put("BMW", 2); 
    map.put("Ford", 2); 
    map.put("SomeOther", 2); 
    System.out.println(map); 

    map.keySet().retainAll(fruit); 

    System.out.println(map); 
    System.out.println(map.keySet()); 
相關問題