亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢查 String[] 是否包含我的元素?

如何檢查 String[] 是否包含我的元素?

森欄 2022-06-04 17:02:52
我被要求編寫一個代碼,將元素添加到具有一些條件的數組中。我搜索了整個 StackOverflow 以了解如何在數組中查找元素,但都給了我錯誤,所以我猜我的代碼有問題,我不知道是什么。任何幫助表示贊賞。public class WordList{    String [] words;    int count = 0;    int max = 2;    WordList()    {        words = new String[max];        this.words = words;        this.count = count;    }    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"));    }    public int addWord(String newWord)    {        for(int i = 0; i < words.length; i++)        {            if(words.contains(newWord) == false && words.length < max)            {                words[i] = newWord;            }            else if(words.contains(newWord) == false && words.length == max)            {                max *= 2;                words[i] = newWord;            }            count = i + 1;        }        return count;    }
查看完整描述

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"));

    }

}


查看完整回答
反對 回復 2022-06-04
?
繁星淼淼

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;

}


查看完整回答
反對 回復 2022-06-04
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

無論如何,您都需要編寫自己的方法來找到它。它不受內存限制 - 您可以將數組轉換為 List 并使用 .contains() 方法。

Arrays.asList(words).contains(newWord);

否則,您可以使用流來查找元素。

Arrays.stream(words).anyMatch(newWord::equals);


查看完整回答
反對 回復 2022-06-04
  • 3 回答
  • 0 關注
  • 288 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號