【发布时间】:2015-05-12 07:19:01
【问题描述】:
我正在使用 java jsoup 构建 HTML DOM 树,其中使用了Node.hashCode()。但是我发现在遍历DOM树的时候有很多hash码冲突,使用如下代码:
doc.traverse(new NodeVisitor(){
@Override
public void head(Node node, int depth) {
System.out.println("node hash: "+ node.hashCode());
/* some other operations */
}
@Override
public void tail(Node node, int depth) {
// TODO Auto-generated method stub
/* some codes */
}
}
因此,当它运行时,即使在前几个输出中,我也会看到许多相同的哈希码。
哈希码非常大,我不希望出现这种奇怪的行为。我使用了 jsoup-1.8.1。 任何意见将不胜感激,谢谢。
【问题讨论】:
-
出于兴趣,节点的内容是否相同?如果 1)哈希是从内容创建的,或者 2)它识别重复以减少内存占用,那将会很有趣。
-
我使用的html页面来自亚马逊(我想分析他们产品页面中的字段)。我认为每一个在内容方面都是独一无二的。即使有相同内容的节点,也不可能那么多。
-
您能否提供一些重现此行为的 html 示例?
-
@alkis ,我可以重现,看我的回答。