問題:判斷兩個數組是否存在相同元素
今天做一個數組添加操作,,但是要判斷數據是否重復,,,頭腦第一個想法就是遍歷兩個數組查詢是否有重復,
然后就吧啦吧啦.....一通狂敲,如下:
1 boolean has = false; 2 String[] strOne= {"c","b","a","d"}; 3 String[] strTwo= {"a","b","d","g"}; 4 for (int i = 0; i < strOne.length; i++) { 5 if (ArrayUtils.contains(strTwo, strOne[i])) { 6 has = true; 7 break; 8 } 9 } 10 11 System.out.println(has ) 12 13
寫完之后莫名的不爽,我要到循環里面進行判斷..........
然后在分析問題 ,判斷兩個數組是否存在相同元素 .........咦------倒吸一口冷氣,這丫的不就是求交集么
交集的函數不就是retainAll
然后馬上開始吧啦吧啦.......一通狂敲,如下:
1 boolean has = false; 2 String[] strOne= {"c","b","a","d"}; 3 String[] strTwo= {"a","b","d","g"}; 4 HashSet<String> set = new HashSet<>(Arrays.asList(strOne)); 5 set.retainAll(Arrays.asList(strTwo)); 6 if(set.size() > 0){ 7 has = true; 8 }
雖然一個九行一個八行 ,, 但是需要我們好好想一下,,,如果問題再復雜一下呢?
一.條條大路通羅馬,,,分析問題,,,找到最優
二.一些基礎函數不用難免忘記