>>967
C直下にtest.txtで元データを用意して。

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;

public class CityCounter {
  public static void main(String[] args) throws Exception {
    Map<String, City> m = new HashMap<String, City>();
    BufferedReader br = new BufferedReader(new FileReader("c:\\test.txt"));
    String str = br.readLine();
    while (str != null) {
      String city = str.substring(0, str.indexOf("市") + 1).trim();
      String sex = str.substring(str.indexOf("市") + 1, str.length()).trim();
      if (m.containsKey(city)) m.get(city).add(sex);
      else m.put(city, new City(city, sex));
      str = br.readLine();
    }
    for (String city : m.keySet()) System.out.println(m.get(city).toString());
  }
}