我知道HashMap不允许插入重复的值,并且它将最新的条目替换为最后的重复值。
有没有办法打印在put方法期间找到的重复项?

我有以下代码片段:

for( int i = 0; i <= elements.length - 1; i++) {
    nodeDBList = (NodeList) xPath.compile(elements[i]).evaluate(dbDocument, XPathConstants.NODESET);
    for (int j = 0; j < nodeDBList.getLength(); j++) {
        if(nodeDBList.item(j).getFirstChild() != null)
            dbList.put(nodeDBList.item(j).getFirstChild().getNodeValue().toLowerCase().trim(),
                       nodeDBList.item(j).getNodeName().toLowerCase().trim());

    }
}

最佳答案

键的旧值由put方法返回,因此可以输出它。

假设您的HashMap的值是String类型:

for( int i = 0; i <= elements.length - 1; i++)
{
    nodeDBList = (NodeList) xPath.compile(elements[i]).evaluate(dbDocument, XPathConstants.NODESET);
    for (int j = 0; j < nodeDBList.getLength(); j++) {
        if(nodeDBList.item(j).getFirstChild() != null) {
            String oldVal = dbList.put(nodeDBList.item(j).getFirstChild().getNodeValue().toLowerCase().trim(), nodeDBList.item(j).getNodeName().toLowerCase().trim());
            if (oldVal != null) {
                System.out.println(oldVal);
            }
        }
    }
}

关于java - HashMap重复值-识别重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27128247/

10-10 13:56