3 回答
TA贡献1851条经验 获得超5个赞
我认为您可以使用Set而不是数组。
public class WordList {
private final Set<String> words = new HashSet<>();
public int addWord(String word) {
if (word != null)
words.add(word);
return words.size();
}
public static void main(String[] args) {
WordList w1 = new WordList();
System.out.println(w1.addWord("Dog"));
System.out.println(w1.addWord("Cat"));
System.out.println(w1.addWord("Fish"));
}
}
TA贡献1775条经验 获得超11个赞
我认为这就是你想要做的。常规数组没有indexOforcontains方法,所以你需要使用Arrays(确保你也导入它)
public int addWord(String newWord)
{
List <String> myList = Arrays.asList(words);
for(int i = 0; i < words.length; i++)
{
if(myList.indexOf(newWord) == -1 && words.length < max)
{
words[i] = newWord;
}
else if(myList.indexOf(newWord) == -1 && words.length == max)
{
max *= 2;
words[i] = newWord;
}
count = i + 1;
}
return count;
}
TA贡献1869条经验 获得超4个赞
无论如何,您都需要编写自己的方法来找到它。它不受内存限制 - 您可以将数组转换为 List 并使用 .contains() 方法。
Arrays.asList(words).contains(newWord);
否则,您可以使用流来查找元素。
Arrays.stream(words).anyMatch(newWord::equals);
添加回答
举报