2017-03-07 5 views
0

私のホームチームの一員として、車のモデルで構成されたファイルを読み込み、それぞれをコンソールに出力しようとしています。セットとマップを使ってテキストファイルを読む

モデル名をキーに、カウンタを値としてマップを使用することでこれまでのところ達成できました。

今、私はセットに追加されたモデルのみを出力したいと思います。 したがって、Fiatがファイル内にあった場合、許容されるSetにないため、Fiatは使用されません。

うまくいけばそれは意味があり、助けに感謝します。

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

あなたのセットを反復して、マップの「取得」メソッドを呼び出すことができます。

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

結果がnullでない場合はコンソールに出力し、そうでない場合は次のものを探します。

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()); 
、これを試してみてください
関連する問題