java - 如何在方法中流式传输 Java List (Varargs) 的值?

标签 java list java-8 java-stream

我有以下方法:

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'

现在我想把它做成一个列表作为参数:

public static List<A> getValuesExclusion(A... exclusions){
        return Arrays.stream(values())
                .filter(???)
                .collect(Collectors.toList());
}

我的问题是,我该如何对第二种情况进行过滤?我想检索一个枚举列表,该列表将所有值“exclusions”排除在外作为输入。以下是类 A 的属性:

public enum A implements multilingualA{
    A("a"),
    B("b"),
    C("c"),
    D("d");
    ...
}

最佳答案

如果您想确保所有项目都不包含在exclusions 中,您可以这样做:

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

这将创建 exclusionsStream,然后使用 noneMatch() 确保给定的 AType 是不包含在 Array

关于java - 如何在方法中流式传输 Java List (Varargs) 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56101134/

相关文章:

c# - 使用 SubList<T> 性能更新 List<T>(LINQ 或 Not)

java - 如何在 Java Annotation 中设置整数数组

java - Stream.max(Integer::max) :意外结果

java - 文件对象和不同的 NetBeans 包

java - Servlet 文件上传内存消耗

java - 在二维数组中搜索一维数组的索引并逐行返回java

python - 在 python 中扩展列表直到满足条件

java - 如何在电子表格 controlsfx 的 GridBase 的 setCellValue 方法中迭代 List<String> 中的值?

java - 将我们的应用程序从Oracle JRE迁移到openJDK JRE是否有任何影响?

java - 在 Spring @Value('#{SPEL}) 中使用 Java 类