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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何通過(guò)屬性在ArrayList中查找對(duì)象

如何通過(guò)屬性在ArrayList中查找對(duì)象

函數(shù)式編程 2019-09-24 15:08:16
我如何Carnet在ArrayList<Carnet>知道對(duì)象屬性的情況下找到它c(diǎn)odeIsin。List<Carnet> listCarnet = carnetEJB.findAll();public class Carnet {    private String codeTitre;    private String nomTitre;    private String codeIsin;    // Setters and getters}
查看完整描述

3 回答

?
慕尼黑的夜晚無(wú)繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

您不能沒(méi)有迭代。


選項(xiàng)1


Carnet findCarnet(String codeIsIn) {

    for(Carnet carnet : listCarnet) {

        if(carnet.getCodeIsIn().equals(codeIsIn)) {

            return carnet;

        }

    }

    return null;

}

選項(xiàng)2


覆蓋的equals()方法Carnet。


選項(xiàng)3


而是將您的存儲(chǔ)List為密鑰:MapcodeIsIn


HashMap<String, Carnet> carnets = new HashMap<>();

// setting map

Carnet carnet = carnets.get(codeIsIn);


查看完整回答
反對(duì) 回復(fù) 2019-09-24
?
蠱毒傳說(shuō)

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

在Java8中,您可以使用流:


public static Carnet findByCodeIsIn(Collection<Carnet> listCarnet, String codeIsIn) {

    return listCarnet.stream().filter(carnet -> codeIsIn.equals(carnet.getCodeIsin())).findFirst().orElse(null);

}

另外,如果您有許多不同的對(duì)象(不僅是Carnet),或者想通過(guò)不同的屬性(不僅是通過(guò)cideIsin)找到它,則可以構(gòu)建一個(gè)實(shí)用程序類(lèi),以將其邏輯封裝在其中:


public final class FindUtils {

    public static <T> T findByProperty(Collection<T> col, Predicate<T> filter) {

        return col.stream().filter(filter).findFirst().orElse(null);

    }

}


public final class CarnetUtils {

    public static Carnet findByCodeTitre(Collection<Carnet> listCarnet, String codeTitre) {

        return FindUtils.findByProperty(listCarnet, carnet -> codeTitre.equals(carnet.getCodeTitre()));

    }


    public static Carnet findByNomTitre(Collection<Carnet> listCarnet, String nomTitre) {

        return FindUtils.findByProperty(listCarnet, carnet -> nomTitre.equals(carnet.getNomTitre()));

    }


    public static Carnet findByCodeIsIn(Collection<Carnet> listCarnet, String codeIsin) {

        return FindUtils.findByProperty(listCarnet, carnet -> codeIsin.equals(carnet.getCodeIsin()));

    }

}


查看完整回答
反對(duì) 回復(fù) 2019-09-24
?
阿波羅的戰(zhàn)車(chē)

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果使用Java 8,并且搜索有可能返回null,則可以嘗試使用 Optional類(lèi)。


要查找證章:


private final Optional<Carnet> findCarnet(Collection<Carnet> yourList, String codeIsin){

    // This stream will simply return any carnet that matches the filter. It will be wrapped in a Optional object.

    // If no carnets are matched, an "Optional.empty" item will be returned

    return yourList.stream().filter(c -> c.getCodeIsin().equals(codeIsin)).findAny();

}

現(xiàn)在,它的用法是:


public void yourMethod(String codeIsin){

    List<Carnet> listCarnet = carnetEJB.findAll();


    Optional<Carnet> carnetFound = findCarnet(listCarnet, codeIsin);


    if(carnetFound.isPresent()){

        // You use this ".get()" method to actually get your carnet from the Optional object

        doSomething(carnetFound.get());

    }

    else{

        doSomethingElse();

    }

}


查看完整回答
反對(duì) 回復(fù) 2019-09-24
  • 3 回答
  • 0 關(guān)注
  • 1823 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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