是否有一个好的类可以计算java中特定字符串的出现次数?我想保留一个名单列表,然后为每个名称创建唯一的电子邮件地址。对于姓氏的每次出现,我想将相关联的数字增加一个。
Ex:如果我有3个姓Smith的人,我希望他们的地址是smith1 @(地址),smith2 @(地址)和smith3 @(地址)。我看到了一个“Map”类,但我似乎无法正确初始化它。是否有一个类可以用来保存字符串及其出现的列表?
答案 0 :(得分:2)
Map将是一个可行的数据结构。键是String(姓氏),值是Integer(出现次数)。
您将其实例化如下:
Map<String, Integer> nameOccurrences = new HashMap<String, Integer>();
要向地图添加值:
nameOccurrences.put("Smith", 1);
检查名称是否在地图中:
if (nameOccurrences.containsKey("Smith")) { ... }
从地图中获取值:
Integer occurrences = nameOccurrences.get("Smith");
请注意,具有不同大小写的名称将被视为不同的键。如果你需要忽略大小写,你必须做一些事情,比如在将键添加到Map之前使键全部大写。
答案 1 :(得分:1)
Bag是您要查找的数据结构。 Multiset是来自google-guava库的Bag实现。