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

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

如何從列表/數(shù)組中檢索不匹配的結(jié)果

如何從列表/數(shù)組中檢索不匹配的結(jié)果

ITMISS 2023-03-09 11:31:24
我想比較兩個數(shù)組的對象并獲得一個不匹配的對象的新數(shù)組。這是: Array1 Array2 都包含 Object User 方法 getId 和 getUsername    for (int fw = 0; fw < tempOldArray.size(); fw++) {        for (int fi = 0; fi < tempArray.size(); fi++) {            if (tempOldArray.get(fw).getId() == tempArray.get(fi).getId()) {                match++;                break;            }            if(fi == (tempArray.size()-1)) {                nomatchfound++;                break;            }        }    }    Array1: {[1231, Peter], [2562, Jackson], [38987, Robert], [4765, William]}    Array2: {[2562, Jackson], [7584, Alfred], [38987, Robert], [8123, Mozart]}    Array3 should output {[1231, Peter], [4765, William]} and Array4 should output {[7584, Alfred], [8123, Mozart]}還詢問了如何從列表中檢索結(jié)果{"peter", "trump", "donald", "jerry"}{"peter", "donald", "lucas", "jerry"}并輸出不匹配的
查看完整描述

5 回答

?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個贊

我想比較兩個數(shù)組的對象并獲得一個不匹配的對象的新數(shù)組。這是: Array1 Array2 都包含 Object User 方法 getId 和 getUsername


    for (int fw = 0; fw < tempOldArray.size(); fw++) {

        for (int fi = 0; fi < tempArray.size(); fi++) {

            if (tempOldArray.get(fw).getId() == tempArray.get(fi).getId()) {

                match++;

                break;

            }

            if(fi == (tempArray.size()-1)) {

                nomatchfound++;

                break;

            }

        }

    }


    Array1: {[1231, Peter], [2562, Jackson], [38987, Robert], [4765, William]}

    Array2: {[2562, Jackson], [7584, Alfred], [38987, Robert], [8123, Mozart]}


    Array3 should output {[1231, Peter], [4765, William]} 

and Array4 should output {[7584, Alfred], [8123, Mozart]}

還詢問了如何從列表中檢索結(jié)果


{"peter", "trump", "donald", "jerry"}

{"peter", "donald", "lucas", "jerry"}

并輸出不匹配的


查看完整回答
反對 回復(fù) 2023-03-09
?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個贊

如果您已經(jīng)在使用列表,只需使用以下內(nèi)容

list1.removeAll(list2)

為了進(jìn)一步優(yōu)化,如果您使用哈希集,您的刪除操作將變?yōu)?O(1),因此效率更高


查看完整回答
反對 回復(fù) 2023-03-09
?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個贊

這只是離散數(shù)學(xué)的問題。檢查執(zhí)行情況removeAll():


public static void main(String[] args) {

    List<String> first = Arrays.asList("peter", "trump", "donald", "jerry");

    List<String> second = Arrays.asList("peter", "donald", "lucas", "jerry");


    List<String> results = new ArrayList<>(first);

    results.removeAll(second);


    System.out.println(results.toString());

}

印刷:


[王牌]


這滿足了您對完整保留first和second列表并創(chuàng)建第三個列表以包含結(jié)果的要求。


查看完整回答
反對 回復(fù) 2023-03-09
?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個贊

假設(shè)您正在使用的類稱為 Person,您必須將以下 equals 方法添加到類定義中


@Override

public boolean equals(Object obj) {

    if (obj == null) {

        return false;

    }


    if (!Person.class.isAssignableFrom(obj.getClass())) {

        return false;

    }


    final Person other = (Person) obj;


    if (this.id != other.id) {

        return false;

    }


    return true;

}

在這種情況下,您可以簡單地使用像這樣的其他答案中指定的 removeAll 方法。


list1.removeAll(list2);


查看完整回答
反對 回復(fù) 2023-03-09
?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個贊

顯示的其他答案List::removeAll(例如來自 Cuga 的答案)是正確的,最適合簡單的情況。

Java流

我將展示使用 Java 流的更高級的方法。如果您的情況變得更加復(fù)雜,您可能想要使用這種方法。

定義您的兩個列表。用于List.of實(shí)例化不可修改的列表已添加到 Java 9。

List < String > namesA = List.of ( "Peter" , "Paul" , "Mary" , "Wendy" , "Lisa" );
List < String > namesB = List.of ( "Peter" , "Paul" , "Jesse" , "Wendy" , "Lisa" );

從一個列表創(chuàng)建流。對于流中的每個元素,查看是否可以在另一個列表中找到該元素。

  • 要查找所有匹配項,請使用
    .filter ( namesB :: contains )。

  • 要查找所有不匹配的項目(不同的元素),請使用:
    .filter ( Predicate.not ( namesB :: contains ) )

這個Predicate.not技巧是 Java 11 的新技巧,如這里所示。

將結(jié)果收集到一個新的List.

List < String > distinct =
        namesA.stream ()
                .filter ( Predicate.not ( namesB :: contains ) )
                .collect ( Collectors.toList () );

轉(zhuǎn)儲到控制臺。

System.out.println ( "namesA: " + namesA );
System.out.println ( "namesB: " + namesB );
System.out.println ( "distinct: " + distinct );

結(jié)果。

namesA: [Peter, Paul, Mary, Wendy, Lisa]

namesB: [Peter, Paul, Jesse, Wendy, Lisa]

獨(dú)特的:[瑪麗]


查看完整回答
反對 回復(fù) 2023-03-09
  • 5 回答
  • 0 關(guān)注
  • 189 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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