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);
添加回答
舉報