我有一个带有自定义对象的简单数组,想要使用 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/