Java 8 数组流过滤器

标签 java filter java-8 java-stream

我有一个带有自定义对象的简单数组,想要使用 java 8 流进行过滤。

    A[] aArray = new A[3];

    A a1 = new A();
    a1.setaId(1);
    a1.setaName("AName1");

    B b1 = new B();
    b1.setbId(1);
    b1.setbName("BName1");

    a1.setB(b1);
    aArray[0] = a1;

    A a2 = new A();
    a2.setaId(2);
    a2.setaName("AName2");

    B b2 = new B();
    b2.setbId(2);
    b2.setbName("BName2");

    a2.setB(b2);
    aArray[1] = a2;

您能否建议我如何在数组上而不是在 arrayList 上获取过滤流

基本上我想仅使用“BName2”值进行过滤。

最佳答案

如果您在数组中存储唯一元素,则可以使用以下方法

如果对象是唯一的

A aWithValidString = Arrays.stream(aArray)
    .filter(a -> "BName2".equals(a.getB().getbName()))
    .finAny().orElse(null);

如果数组中有多个带有“Bname2”字符串的对象,您可以使用下面的代码

List<A> filteredObject = Arrays.stream(aArray)
    .filter(a -> "BName2".equals(a.getB().getbName()))
    .collect(Collectors.toList());

并迭代列表

关于Java 8 数组流过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55084538/

相关文章:

java - Hibernate 返回不同的时间戳

java - java中的私有(private)实例和getter可见性

javascript - Nashorn:奇怪的包裹返回

Java Stream - 编译时错误 - 类型与 Map<Integer,List<String>> 不匹配 : cannot convert from Map<Object, Object>

java-8 - Map方法java 8中的条件方法调用

java - Vaadin 组合框 getValue() 没有得到我想要的

java - Log4j 2滚动文件的时间戳错误

java - 如何在filter Rest api jersey中获取cookie

filter - Tableau - 如何使用条件来筛选周(日期)

arrays - 通过数组过滤器长度查询ElasticSearch