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

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

如何在方法中流式傳輸Java List(Varargs)的值?

如何在方法中流式傳輸Java List(Varargs)的值?

BIG陽 2019-05-03 17:15:19
我有以下方法:public static List<A> getValuesExclusion(A exclusion) {         return Arrays.stream(values())                 .filter(item -> item != exclusion)                 .collect(Collectors.toList());}//this function returns enum list of A types that has no A type'exclusion'現(xiàn)在我想將它作為參數(shù)列入一個列表:public static List<A> getValuesExclusion(A... exclusions){         return Arrays.stream(values())                 .filter(???)                 .collect(Collectors.toList());}我的問題是,如何針對第二種情況進行過濾?我想檢索一個枚舉列表,該列表排除所有值“排除”作為輸入。以下是A類的屬性:public enum A implements multilingualA{     A("a"),     B("b"),     C("c"),     D("d");     ...}
查看完整描述

3 回答

?
UYOU

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

如果您想確保所有項目都不包含在exclusions您可以執(zhí)行的操作中:

public static List<A> getValuesExclusion(AType... exclusions){
        return Arrays.stream(values())
                .filter(e -> Arrays.stream(exclusions).noneMatch(c -> c == e))
                .collect(Collectors.toList());}

這將創(chuàng)造一個Streamexclusions再利用noneMatch(),以確保給定的AType是不包括在Array


查看完整回答
反對 回復(fù) 2019-05-15
?
絕地?zé)o雙

TA貢獻1946條經(jīng)驗 獲得超4個贊

您應(yīng)該重新考慮是否List真的是包含唯一元素的適當(dāng)數(shù)據(jù)類型。一個Set通常是比較合適的。

然后,如果您關(guān)心性能,可以將其實現(xiàn)為

public static Set<A> getValuesExclusion(A... exclusions){
    return exclusions.length == 0? EnumSet.allOf(A.class):
        EnumSet.complementOf(EnumSet.of(exclusions[0], exclusions));}

該類EnumSet專門用于保存enum類型的元素,只為每個常量存儲一個位,以判斷它是否存在。這允許像complementOf只使用單個?binarynot?操作翻轉(zhuǎn)所有位的操作,而不需要實際遍歷enum常量。

如果你堅持要回來List,你可以這樣做

public static List<A> getValuesExclusion(A... exclusions){
    return new ArrayList<>(exclusions.length == 0? EnumSet.allOf(A.class):
        EnumSet.complementOf(EnumSet.of(exclusions[0], exclusions)));}


查看完整回答
反對 回復(fù) 2019-05-15
?
慕少森

TA貢獻2019條經(jīng)驗 獲得超9個贊

我不會Stream在這里使用s,而是使用(imho)更具可讀性的方法:

public static List<A> getValuesExclusion(AType... exclusions){
    List<A> values = Arrays.asList(values());
    values.removeAll(Arrays.asList(ex));
    return values;}


查看完整回答
反對 回復(fù) 2019-05-15
  • 3 回答
  • 0 關(guān)注
  • 826 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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