各リストでマップを作成するのが最も簡単です。次に、キーが存在しない場合は、エントリを作成してから追加します。
このようなもの:
Map<String, List<String>> result = new HashMap<String, List<String>>();
String[] values = source.substring(1, source.length() - 1).split(",");
for (String value : values) {
List<String> existingMatches = result.get(value);
if (existingMatches == null) {
existingMatches = new ArrayList<String>();
result.put(value, existingMatches);
}
existingMatches.add(value);
}
個別の値のカウントだけが必要な場合は、List を AtomicInteger に置き換えて値をインクリメントすると、個別の文字列のマップと、それが表示される回数のカウントになります。