我有几个这样的xml文件
<?xml version = "1.0"?>
<note>
<to>Tim</to>
<from>Joe</from>
<head>About Job</head>
</note>
<?xml version = "1.0"?>
<note>
<to>Tim</to>
<from>Joe</from>
<head>How are u?</head>
</note>
<?xml version = "1.0"?>
<note>
<to>Marry</to>
<from>Pit</from>
<head>Welcome to home</head>
</note>
我解析这些文件并将数据存储到文本文件中,如下所示
FROM:
Tim
Tim
Pit
TO:
Joe
Joe
Marry
HEAD:
About Job
How are u?
Welcome to home
我希望这些名字不会重复 我如何用hasMap做到这一点,请帮助我! :)
答案 0 :(得分:0)
如果您只需要一个唯一的名称集合,请使用HashSet<String>
。每个唯一名称只存储一个实例。如果您希望每个唯一名称作为密钥,HashMap
会有意义。在这种情况下,您必须确定要存储的内容作为每个名称键的值。
答案 1 :(得分:0)
从您的问题来看,您似乎只需要存储一组唯一对象。 Set
的实施将有所帮助。您可以使用HashSet
个String
个对象:
Set uniqueNames = new HashSet<String>()
答案 2 :(得分:0)
Set<String> from = new HashSet<String>();
您只需使用add方法添加新记录。请记住,集合不会保持已插入的女巫元素的顺序。但我想在你的例子中你会在打印前对名称进行排序,所以没关系。
如果你想保持迭代顺序,请使用LinkedHashSet。
答案 3 :(得分:0)
阅读文本文件并将其存储到HashSet
之类的
Set names = new HashSet<String>();
names.put(nameString);
以上解决方案为case-sensitive
- 这意味着Tim
和tim
将被区别对待。如果您正在寻找像"nameString".toLowerCase()
这样的行为,请先使用HashSet
将名称字符串转换为小写,然后再将其放入case-insensitive
names.put(nameString.toLowerCase()); \\now Tim and tim will be treated equally
希望这有帮助。