使用集合和地图读取文本文件



作为我作业的一部分,我正在尝试读取由汽车型号组成的文件,并将每个文件的总量输出到控制台。

我已经通过使用具有模型名称作为密钥的地图和计数器作为值来实现这一目标。

,尽管现在,我只想输出添加到集合中的模型。因此,如果菲亚特在文件中,则不会使用它,因为它不在允许集中。

希望这是有道理和帮助的。

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

您可以通过布景迭代,然后调用地图的" get"方法。

,例如

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

如果结果未零,则将其打印到控制台,否则请查找下一个。

尝试这个,

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

最新更新