List<Map<String, Object>> allPoints = new LinkedList<>();
List<Map<String, Object>> expectedPoints
名单中有重名的;对于这些,只想保留最后一个。
例如。如果列表有三个项目,并且第一个和第三个项目都有值为“abc”的“name”,那么结果列表应该只包含来自原始列表的第二个和第三个项目。
一种方法是使用辅助地图:
Map<String, Map<String, Object>> map = new LinkedHashMap<>(allPoints.size(), 0.75f, true);
allPoints.forEach(point -> map.put((String)point.get("name"), point));
List<Map<String, Object>> expectedPoints = new ArrayList<>(map.values());
这是因为map.put
要么将新条目放入映射,要么用新条目覆盖现有条目的值,从而只保留与名称关联的最后一点。
我正在使用其重载构造函数创建一个访问排序的LinkedHashMap
。这是为了维护与allpoints
列表中相同的顺序。
我正试图从基于某些属性的对象列表中删除重复项。 我们能用一种简单的方法使用Java8吗 我们是否可以根据员工的属性删除其中的重复项。我看到过从String的arraylist中删除重复字符串的帖子。
问题基于https://stackoverflow.com/A/29671501/2517622 有办法吗?
我正在尝试根据两个行值筛选出行。我看到的大多数问题的解决方法都采用以下方法: 可能我在这里弄得很混乱,这很简单。无论如何,任何帮助都将不胜感激! 问候
我下面有一个类,想删除包含同名的重复人,如何使用Java8 Lambda,预计列表包含下面的p1、p3。
我有一个这样定义的类: 现在我有一个项目对象列表,现在我想找到所有项目的总价。在Java8中我们如何做到这一点? 如果列表是简单的整数,那么我们在这里给出了解决方案--如何用java流求和整数列表?
如何根据属性值从数组中删除所有对象? 在上面的代码中,它只删除一个对象。如何删除所有if匹配项?