Java 方法,该方法检查hashmap(键)中是否出现了参数
我有两个参数表示可能在文档中找到的两个区分大小写的单词。我需要一个方法,如果第一个参数在文档中至少出现过一次,并且紧接着第二个单词出现了至少一次,那么该方法必须返回true。否则它必须返回false 这是我的密码Java 方法,该方法检查hashmap(键)中是否出现了参数,java,hashmap,Java,Hashmap,我有两个参数表示可能在文档中找到的两个区分大小写的单词。我需要一个方法,如果第一个参数在文档中至少出现过一次,并且紧接着第二个单词出现了至少一次,那么该方法必须返回true。否则它必须返回false 这是我的密码 public boolean nextTo(String firstInput, String secondInput) { Iterator it = Words.keySet().iterator(); while (it.hasNext() == true) {
public boolean nextTo(String firstInput, String secondInput) {
Iterator it = Words.keySet().iterator();
while (it.hasNext() == true)
{
it.next();
if (Words.containsKey(firstInput))
{
if(Words.higherKey(secondInput))
{
return true;
}
}
}
return false;
解决方案1:
将文档表示为字符串[]
,只需迭代文档中的单词即可。当您看到firstInput
时,测试下一个单词是否为secondInput
解决方案2:
为文档创建反向索引;i、 e.映射
,其中字符串
键是单词,int[]
值包含文档中单词每次出现的索引
从文档填充反向索引
然后,要查找firstInput
,然后是secondInput
:
int[] fi = reverseIndex.get(firstInput);
int[] si = reverseIndex.get(secondInput);
if (fi == null || si == null) {
return false;
}
for (int i = 0; i < fi.length; i++) {
for (int j = 0; j < si.length; j++) {
if (fi[i] == si[j] - 1) {
return true;
}
}
}
return false.
int[]fi=reverseIndex.get(firstInput);
int[]si=reverseIndex.get(第二输入);
如果(fi==null | | si==null){
返回false;
}
对于(int i=0;i
据我所知,word是文档中所有单词的集合,因此您只能将word集合用于第一个关键字,但必须检查文档中出现的每个单词和后面的单词。否则,您无法确保顺序。那么我该如何做/实现它?hasNext()
已经是一个布尔值。不要与true
进行比较。当您从未使用迭代时找到的值,即从未使用next()
返回的值时,迭代器循环的目的是什么?映射值是什么?