三種方式找出兩個list中的不同元素

前提假設(shè)兩個list都無重復(fù)元素:

public class TwoListDifTest {
    public static void main(String[] args) {
        List<String> l1 = new ArrayList<>();
        List<String> l2 = new ArrayList<>();
        l1.add("a");
        l1.add("s");
        l1.add("f");
        l1.add("h");
        l1.add("l");
        l2.add("a");
        l2.add("h");
        l2.add("z");
        l2.add("x");

        getDif1(l1,l2);
        getDif2(l1,l2);
        getDif3(l1,l2);

    }
    //1.方法一:兩次循環(huán)數(shù)組+contains()方法:
    private static List<String>getDif1(List<String> l1, List<String> l2){
        long start = System.currentTimeMillis();
        List<String> dif = new ArrayList<>();
        for(String str : l1){
            if(!l2.contains(str)){
                dif.add(str);
            }
        }
        for(String str : l2){
            if(!l1.contains(str)){
                dif.add(str);
            }
        }
        long end = System.currentTimeMillis();
        long t= start-end;
        System.out.println(dif);
        return dif;

    }
    //2.方法二:removeAll()+retainAll()方法:
    private static List<String>getDif2(List<String> l1, List<String> l2){
        long start = System.currentTimeMillis();
        List<String> dif = new ArrayList<>();
        List<String> res = new ArrayList<>();
        dif.addAll(l1);
        //先求出兩個list的交集嫉戚;
        dif.retainAll(l2);
        res.addAll(l1);
        res.addAll(l2);
        //用合集去掉交集,就是不同的元素待锈;
        res.removeAll(dif);
        long end = System.currentTimeMillis();
        long t= start-end;
        System.out.println(res);
        return dif;

    }
    //3.方法三:把數(shù)組放進map,key:string,value:次數(shù)找爱,最后提取value=1的key;
    private static List<String>getDif3(List<String> l1, List<String> l2){
        List<String> dif = new ArrayList<>();
        Map<String,Integer> map = new HashMap<>();

        for (String str: l1){
            map.put(str,1);
        }
        for(String str : l2){
            if(map.get(str) != null){
                map.put(str,2);
                continue;
            }else {
                map.put(str,1);
            }
        }
        for(Map.Entry<String,Integer> en : map.entrySet()){
            if(en.getValue()==1){
                dif.add(en.getKey());
            }
        }
        System.out.println(dif);
        return dif;

    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扣唱,一起剝皮案震驚了整個濱河市跛十,隨后出現(xiàn)的幾起案子豆巨,更是在濱河造成了極大的恐慌蜻拨,老刑警劉巖压怠,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眠冈,死亡現(xiàn)場離奇詭異,居然都是意外死亡菌瘫,警方通過查閱死者的電腦和手機蜗顽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雨让,“玉大人雇盖,你說我怎么就攤上這事∑苤遥” “怎么了崔挖?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長庵寞。 經(jīng)常有香客問我狸相,道長,這世上最難降的妖魔是什么捐川? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任脓鹃,我火速辦了婚禮,結(jié)果婚禮上古沥,老公的妹妹穿的比我還像新娘瘸右。我一直安慰自己,他們只是感情好岩齿,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布太颤。 她就那樣靜靜地躺著,像睡著了一般盹沈。 火紅的嫁衣襯著肌膚如雪龄章。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音瓦堵,去河邊找鬼。 笑死歌亲,一個胖子當著我的面吹牛菇用,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播陷揪,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼惋鸥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了悍缠?” 一聲冷哼從身側(cè)響起卦绣,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎飞蚓,沒想到半個月后滤港,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡趴拧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年溅漾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片著榴。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡添履,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出脑又,到底是詐尸還是另有隱情暮胧,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布问麸,位于F島的核電站往衷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏口叙。R本人自食惡果不足惜炼绘,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望妄田。 院中可真熱鬧俺亮,春花似錦、人聲如沸疟呐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽启具。三九已至本讥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拷沸。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工色查, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撞芍。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓秧了,卻偏偏與公主長得像,于是被迫代替她去往敵國和親序无。 傳聞我的和親對象是個殘疾皇子验毡,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容