第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Java這段代碼為什么會返回 false?傳入的是字符串[1,1]

Java這段代碼為什么會返回 false?傳入的是字符串[1,1]

繁星點點滴滴 2019-02-22 05:50:32
public boolean xh_repeat(String[] arry) { //用于判斷是否有重復(fù)值的標(biāo)記 boolean flag=false; for (int i = 0; i < arry.length; i++) { String temp=arry[i]; int count=0; for (int j = 0; j < arry.length; j++) { String temp2=arry[j]; //有重復(fù)值就count+1 if(temp.equals(temp2)){ count++; } } //由于中間又一次會跟自己本身比較所有這里要判斷count>=2 if(count>=2){ flag=true; } } if(flag){ return true; }else{ return false; //沒有 } }
查看完整描述

4 回答

?
陪伴而非守候

TA貢獻1757條經(jīng)驗 獲得超8個贊

為什么我跑的結(jié)果是 true?

public class Test {
    public static void main(String[] args) {
        String[] arr = new String[2];
        arr[0] = "1";
        arr[1] = "1";
        Assert.assertTrue(xh_repeat(arr));
    }

    public static boolean xh_repeat(String[] arry) {
        //用于判斷是否有重復(fù)值的標(biāo)記
        boolean flag = false;
        for (int i = 0; i < arry.length; i++) {
            String temp = arry[i];
            int count = 0;
            for (int j = 0; j < arry.length; j++) {
                String temp2 = arry[j];
                //有重復(fù)值就count+1
                if (temp.equals(temp2)) {
                    count++;
                }
            }
            //由于中間又一次會跟自己本身比較所有這里要判斷count>=2
            if (count >= 2) {
                flag = true;
            }
        }
        if (flag) {
            return true;
        } else {
            return false; //沒有
        }
    }
}

你的目的是檢查字符串?dāng)?shù)組是否有重復(fù)的吧? 我覺得這樣比較簡單:

publi boolean isDuplicate(String[] arr) {
    Set<String> set = new HashSet<String>(Arrays.asList(arr));
    return set.size() != arr.length;
}
查看完整回答
反對 回復(fù) 2019-03-01
?
繁花如伊

TA貢獻2012條經(jīng)驗 獲得超12個贊

想法基本沒問題,但是沒必要寫的那么復(fù)雜,一旦遇到重復(fù)的了,就可以跳出循環(huán)了。寫了個簡單點的例子:

public boolean xh_repeat(array){
  for(int i =0; i < array.length; i ++){
    String temp = array[i];
    for(int j = 0; j < array.length; j ++){
      if(temp.equals(array[j])){
        return true;
      }
    }
  }

  return false;
}
查看完整回答
反對 回復(fù) 2019-03-01
?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

雖然你代碼風(fēng)格非常爛,而且算法也不好,但是從代碼來看,起碼你字符串比較用的是equals方法,所以不可能返回false的。注意,傳入的是字符串["1", "1"].
建議這種查找重復(fù)直接用map做就好了,空間換時間,O(1)的時間復(fù)雜度.

查看完整回答
反對 回復(fù) 2019-03-01
  • 4 回答
  • 0 關(guān)注
  • 551 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號