【发布时间】:2026-02-16 22:25:02
【问题描述】:
我有一个非常基本的 java 代码。有 2 个哈希表:
Hashtable<String, ArrayList<tuple> > htDOC1 = new Hashtable<String, ArrayList<tuple> >();
Hashtable<String, ArrayList<tuple> > htDOC2 = new Hashtable<String, ArrayList<tuple> >();
每个键代表一个单词,如您所见,字符串。然后我有一个方法,它将 2 个哈希表作为参数:
public static void CheckCheaters(Hashtable<String, ArrayList<tuple> > doc1 ,Hashtable<String, ArrayList<tuple> > doc2 ){
Set <String> keysDoc1 = doc1.keySet();
Set <String> keysDoc2 = doc2.keySet();
}
在 KeysDoc1 中,我将第一个哈希表的键存储在 keysDoc2 中 我已经存储了第二个哈希表的键。
我想遍历这两个集合并检查 keysDoc1 的前 5 个元素是否等于 keysDoc2 的前 5 个元素,然后检查下一个 5 ..etc
你能指导我吗? 我希望我很清楚,我尽力了。
编辑
public static boolean CheckCheaters(SortedMap<String, ArrayList<tuple> > doc1 ,SortedMap<String, ArrayList<tuple> > doc2 ){
boolean checking=true;
Set<String> keysDoc1 = doc1.keySet();
Set<String> keysDoc2 = doc2.keySet();
int count = 0;
for(String s : keysDoc1)
{
if(keysDoc2.contains(s))
count++;
}
if(count>5) {
checking=true;
}
else {
checking=false;
}
return checking;
}
}
【问题讨论】:
-
哈希表是无序的。
-
@SLaks 真的!天哪,我应该使用什么数据结构?
-
您可以使用 LinkedHashMap 来保留插入顺序,或者使用 TreeMap 来保持比较器定义的升序。
-
好吧,我已经使用了 TreeMap 如何检查这两个集合的元素? @clinomaniac 请你给我看一下代码示例..?
标签: java data-structures iterator set hashtable