【发布时间】:2014-06-24 20:32:44
【问题描述】:
在我的程序中,我有一个植物列表,每个植物都有一个测量值(字符串)、天数(整数)、相机(整数)和复制数(整数)。我使用过滤器获得了所有想要的植物的列表:
List<Plant> selectPlants = allPlants.stream().filter(plant -> passesFilters(plant, filters)).collect(Collectors.toList());
我现在想做的是获取所有具有相同相机、测量和复制值的植物。并按天顺序组合它们。因此,如果我有 1、2、3、5 天,我想找到所有类似的植物并将值附加到 getValues(函数)所在的植物。
我向 Plant 添加了一个方法,该方法仅通过使用 addAll( new plant values ) 来附加值。
有没有什么方法可以做到这一点,而无需一遍又一遍地遍历列表以找到相似的植物,然后每天排序然后追加?我很抱歉这个问题的措辞很糟糕。
【问题讨论】:
-
有几个答案已经弄清楚如何将“相似”植物分组在一起(假设“相似”意味着它们具有相同的相机、测量值和复制值)。既然已经收集到了类似的植物,那它们该怎么办呢?将哪些值附加到哪个工厂?
标签: java java-8 concatenation java-stream