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

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

根據(jù)其成員屬性之一在對(duì)象列表中查找對(duì)象

根據(jù)其成員屬性之一在對(duì)象列表中查找對(duì)象

FFIVE 2023-07-28 09:31:04
假設(shè)我有一個(gè)名為 的對(duì)象House,其中包含List<Room>:public class House {private List<Room> roomsList;public House(List<Room> rooms) {    roomsList = rooms;}/*Getter and Setter*/...對(duì)于 Room,只是一個(gè)屬性color,其值由 表示int:public calss Room {private int color;public Room(int c) {    color = c;}/*Getter and Setter*/...現(xiàn)在,使用 Java 8,并給定一個(gè)已設(shè)置的對(duì)象House,我知道如何根據(jù) 的值在 my 中List<Room>查找對(duì)象,例如:RoomHousecolorRoom myRoom = house.getRooms.stream().filter(r -> r.getColor() == color).findFirst().orElse(null);我希望能夠做的是,給定 aList<House>和值為int c,找到一個(gè)或多個(gè)屬性等于Housea的Roomcolorc需要明確的是,對(duì)于我的用例:theList<House>既不為 null,也不為空;everyHouse都有一個(gè)List<Room>既不為 null 也不為空的 a;每個(gè)Room都有其屬性color集;每個(gè)Room里面House都有獨(dú)特的顏色最有可能(但不一定)只有 1 個(gè)具有給定Housea的Roomcolor我可以做這樣的事情:List<House> houseList = /*a given list of houses*/int c = 4;House myHouse = null;for (House house : houseList) {    List<Room> rooms = house.getRooms();    Room roomOfRightColor = house.getRooms.stream().filter(r -> r.getColor() == color).findFirst().orElse(null);    if (room != null) {        myHouse = house;        break;    }if (myHouse == null) {/*Handle null*/}return myHouse;但也許有一種更聰明和/或更直接的方法來(lái)做到這一點(diǎn)?
查看完整描述

1 回答

?
白豬掌柜的

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

我可以想象以前也有人問(wèn)過(guò)類似的問(wèn)題,技巧就在于下一個(gè)過(guò)濾操作:


private static Optional<House> test() {

    List<House> houseList = Arrays.asList(

            new House(new Room(1), new Room(3)),

            new House(new Room(5))

    );

    int color = 5;


    return houseList.stream()

            .filter(h -> h.getRooms()

                    .stream()

                    .anyMatch(r -> r.getColor() == color))

            .findFirst();

}

因此,在過(guò)濾器內(nèi)部,您有第二個(gè)匹配項(xiàng)來(lái)檢查內(nèi)部列表。我確實(shí)將其更改為返回可選值而不是空值,但請(qǐng)隨意應(yīng)用適合您的內(nèi)容。


查看完整回答
反對(duì) 回復(fù) 2023-07-28
  • 1 回答
  • 0 關(guān)注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報(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)