Java 8 从Java8流api创建列表

Java 8 从Java8流api创建列表,java-8,java-stream,Java 8,Java Stream,我有一个XML模式,并从JAXB生成了相应的POJO类。 最后提供了xml示例 我有一份清单,上面有船的订单。如果物品的价格超过100,我想收集所有物品。我可以用Java7来做这件事,但我想用streams在Java8中做同样的事情。我试过了,但没能达到同样的效果。 谁能帮我写代码吗 List<Shiporder> shiporders = new ArrayList<>(); shiporders.add(getShipOrder("sr

我有一个XML模式,并从JAXB生成了相应的POJO类。 最后提供了xml示例

我有一份清单,上面有船的订单。如果物品的价格超过100,我想收集所有物品。我可以用Java7来做这件事,但我想用streams在Java8中做同样的事情。我试过了,但没能达到同样的效果。 谁能帮我写代码吗

    List<Shiporder> shiporders = new ArrayList<>();
            shiporders.add(getShipOrder("src/allinone/order1.xml"));
            shiporders.add(getShipOrder("src/allinone/order2.xml"));

<shiporder orderid="Order_1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="shiporder.xsd">
    <orderperson>Suman pandey</orderperson>
    <shipto>
        <name>Suman pandey</name>
        <address>BTM layout</address>
        <city>Bangalore</city>
        <country>India</country>
    </shipto>
<item>
        <title>Samsung S2</title>
        <note>Special Edition</note>
        <quantity>1</quantity>
        <price>100.90</price>
    </item>
<item>
        <title>Oppo</title>
        <quantity>4</quantity>
        <price>20.90</price>
    </item>
</shiporder>
List shipmorders=new ArrayList();
添加(getShipOrder(“src/allinone/order1.xml”);
添加(getShipOrder(“src/allinone/order2.xml”);
苏曼潘迪
苏曼潘迪
BTM布局
班加罗尔
印度
三星S2
特别版
1.
100.90
奥波
4.
20.90
shiporders.stream()
.filter(新谓词(){
公共布尔测试(Shiporder Shiporder){
返回;
}
}).collect(Collectors.asList);
或者,您可以用表单中的lambda替换匿名内部类

shiporders.stream()
    .filter(shiporder -> <boolean condition on shiporder>)
    .collect(Collectors.asList);
shiporders.stream()
.filter(发货订单->)
.collect(Collectors.asList);
shiporders.stream()
.filter(新谓词(){
公共布尔测试(Shiporder Shiporder){
返回;
}
}).collect(Collectors.asList);
或者,您可以用表单中的lambda替换匿名内部类

shiporders.stream()
    .filter(shiporder -> <boolean condition on shiporder>)
    .collect(Collectors.asList);
shiporders.stream()
.filter(发货订单->)
.collect(Collectors.asList);
这个怎么样

List<Item> items = shiporders.stream()
                             .map(Shiporder::getItems)
                             .flatMap(List::stream)
                             .filter(it -> it.price > 100)
                             .collect(Collectors.toList());
List items=shiporders.stream()
.map(Shiporder::getItems)
.flatMap(列表::流)
.filter(it->it.price>100)
.collect(Collectors.toList());
这个怎么样

List<Item> items = shiporders.stream()
                             .map(Shiporder::getItems)
                             .flatMap(List::stream)
                             .filter(it -> it.price > 100)
                             .collect(Collectors.toList());
List items=shiporders.stream()
.map(Shiporder::getItems)
.flatMap(列表::流)
.filter(it->it.price>100)
.collect(Collectors.toList());

谢谢,它起作用了:)…我只是尝试使用过滤器、映射和收集,所以它不起作用,通过这个示例,我了解了flatmap的一个很好的用法。@user3305063一点也不起作用。我猜你的类结构,因为你从来没有提供了更多。所以你可能需要对我的答案进行一些转换。谢谢它起作用了:)…我只是尝试了过滤器、映射和收集,所以它不起作用,通过这个例子,我了解了flatmap的一个很好的用法。@user3305063一点也不起作用。我猜你的类结构,因为你从来没有提供了更多。因此,您可能需要对我的答案进行一些转换。谢谢,我将尝试使用该方法…:)谢谢,我将尝试使用该方法…)