-
350 votesanswersviews
我应该尽可能使用并行流吗?
使用Java 8和lambdas,可以很容易地将集合作为流进行迭代,同样易于使用并行流 . 来自the docs的两个示例,第二个使用parallelStream的示例: myShapesCollection.stream() .filter(e -> e.getColor() == Color.RED) .forEach(e -> System.out.println... -
3 votesanswersviews
使用Java 8流进行复杂聚合
给定一个类Item: public class Item { private String field1; private String field2; private String field3; private Integer field4; // getters, constructor... } 另一个类Group(field1和field2存储... -
10 votesanswersviews
如何使用Java 8流将列表的元素映射到它们的索引?
有了一个字符串列表,我需要构建一个有效对的列表 (string, its position in the list) . 目前我有使用谷歌收藏的代码: public Robots(List<String> names) { ImmutableList.Builder<Robot> builder = ImmutableList.builder(); for... -
17 votesanswersviews
如何在Java 8中以相反的顺序从列表中获取有序流
是否有一种理智的方式从列表中获取有序流(具体来说,数组列表,但它应该无关紧要)流式元素与它们在原始列表中的方式相反? 我需要在任何事物中缓冲数据(收集器,另一个列表,数组等,因为它们复制了浪费的容器),或使用 Collections.reverse (因为它修改了列表) . 到目前为止,我在这里看到的最简洁的方法是实现我自己的 Spliterator 版本 ORDERED 并反向推进列表,或实现反... -
26 votesanswersviews
Java 8 Stream API用于查找与属性值匹配的唯一对象
使用Java 8 Stream从集合中查找与Property值匹配的对象 . List<Person> objects = new ArrayList<>(); 人员属性 - >姓名,电话,电子邮件 . 迭代人员列表并找到匹配电子邮件的对象 . 看到这可以通过Java 8流轻松完成 . 但那仍然会收回一个集合? 例如: List<Person> matc... -
2 votesanswersviews
Java流 - 验证列表中至少有一个元素包含在另一个元素中
我有一张 Map . 比方说吧 Map<Long, Train> 每列火车都有一份清单 List<Integer> parts = train.getTrainParts() 我有另一个清单 List<Integer> blueParts; 我想迭代 Map 并收集所有至少有一个蓝色部分的列车 . 这是 Stream 的天真用法: trainMap().... -
2 votesanswersviews
Java 8流 - 收集和流式传输列表
我有一个列表 Map ,并希望收集所有的值,然后在收集的列表上流,所以给出: - Map<LocalDateTime, List<PublicationSession>> effectiveDatePublicationMap; 下面的工作/显示我想用迭代做什么,但我想在流中完成所有操作,而不是使用迭代创建一个中间列表: - List< PublicationSes... -
2 votesanswersviews
Java map / collect for Stream to sum List of List
我正在使用Java 8,以及来自包 java.util.stream 的Map,Reduce,Collect API . 我有一个用例,我需要垂直排列列表 . 我的列表的结构是 List<List<Integer>> 我只是想不出可以使用 Map 压缩内部列表的方法,并减少或收集流上可用的操作 . 请考虑以下代码 . 说我的名单名为 transactions . 此事务存... -
239 votesanswersviews
如何从Java 8流中抛出CHECKED异常?
如何从Java 8流/ lambdas中抛出CHECKED异常? 换句话说,我想像这样编译代码: public List<Class> getClasses() throws ClassNotFoundException { List<Class> classes = Stream.of("java.lang.Object&q... -
1 votesanswersviews
我们能改进这段代码吗?
我需要根据需要按顺序执行的3个检查来选择第一个结果 . 即如果没有符合标准1的对象,那么我们寻找满足标准2的任何对象,依此类推 . 这是我的工作代码 MyClass result = myObjects.stream() .filter(s -> s.meetsCriterion1()) .findFirst() .orElseGet(() -... -
390 votesanswersviews
从Java 8中的java.util.stream.Stream中检索List
我正在玩Java 8 lambdas来轻松过滤集合 . 但我没有找到一种简洁的方法来将结果检索为同一语句中的新列表 . 到目前为止,这是我最简洁的方法: List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L); List<Long> targetLongList... -
10 votesanswersviews
Java 8 Stream:使用多个收集器进行分组
我想通过一个分类器使用Java 8 Stream和Group,但是有多个Collector函数 . 因此,在分组时,例如计算一个场(或可能是另一个场)的平均值和总和 . 我试着用一个例子来简化这个: public void test() { List<Person> persons = new ArrayList<>(); persons.add(new P... -
2 votesanswersviews
Java 8 Stream:根据其他收集器定义收集器
我'm new to using Java 8 Stream APIs but I' m希望用它来解决以下问题 . 假设我有一个名为 InputRecord 的POJO,其中包含 name , fieldA 和 fieldB 属性,可以表示以下各行记录: name | fieldA | fieldB ---------------------- A | 100 | 1.1 A |... -
290 votesanswersviews
Java 8属性不同
在Java 8中,如何通过检查每个对象的属性的清晰度来使用 Stream API过滤集合? 例如,我有一个 Person 对象的列表,我想删除具有相同名称的人, persons.stream().distinct(); 将使用 Person 对象的默认相等检查,所以我需要像, persons.stream().distinct(p -> p.getName()); 不幸的是 disti... -
18 votesanswersviews
在Java 8中从Double流中收集Long列表
我有以下代码: List<Long> list = new ArrayList<>(); list.add(4L); list.add(92L); list.add(100L); List<Long> newList = list.stream().map(i -> i * 2.5) .m... -
6 votesanswersviews
收集IntStream进行映射时出错
以下代码 String[] values = ... .... Map<String, Object> map = new HashMap<>(); for (int i = 0; i < values.length; i++) { map.put("X" + i, values[i]); } 由IntelliJ转换为: Map<... -
-1 votesanswersviews
将 set 转换为带有 count 的字符串映射
我的原始数据是字符串流 correctname abc,def,ghi,jol abc def,ghi zzzzzzzzzz myname pppppppppp jkl 转换它集: {correct} {abc, def,ghi,jkl} {abc} {def,ghi} {invalid} {correct} {invalid} {jkl} 我有一些 Stream.map(...)让我高于结果... -
3 votesanswersviews
Java 8 - 如何从List中获取对象的多个属性?
我有一个Google Places API返回的地点列表,并决定找到价格最低的地方 . 以下是我使用Java 8实现它的方法: BigDecimal lowestPrice = places.stream() .collect(Collectors.groupingBy(Place::getPrice, Collectors.counting())) ... -
4 votesanswersviews
Java 8流分组以对象作为键的对象字段
我有以下类的结构(给出的例子是没有意义的,我只是为了问题目的而做的): public class ManufacturerDto { private String name; private Boolean withConfirmation; //getters and setters omitted for brevity } public class CarDto ... -
2 votesanswersviews
如何使用Java流查找不同对象的计数
我有一个Thing对象列表: class Thing { public String id; public String name; } List<Thing> lst 包含以下内容; [{'1', 'AB'},{'2', 'CD'},{'1', 'AB'},{'1','AB'},{'2','CD'},{'3','EF'}] 现在我想使用Java流或任何util函数... -
751 votesanswersviews
Java 8将<V>列入Map <K,V>
我想使用Java 8的流和lambdas将对象列表转换为Map . 这就是我在Java 7及以下版本中编写它的方法 . private Map<String, Choice> nameMap(List<Choice> choices) { final Map<String, Choice> hashMap = new HashMap<>... -
0 votesanswersviews
Java流过滤器空指针问题
我有以下流: services = services.stream() .filter(service -> (service.getType().isEmpty() || service.getType().equals(type))) .collect(Collectors.toList()); 其中 service.type 是字符串, type 也是... -
317 votesanswersviews
Java 8并行流中的自定义线程池
是否可以为Java 8 parallel stream指定自定义线程池?我找不到任何地方 . 想象一下,我有一个服务器应用程序,我想使用并行流 . 但是应用程序很大且是多线程的,因此我想将它划分为区分 . 我不想在另一个模块的应用程序块任务的一个模块中执行缓慢的任务 . 如果我不能为不同的模块使用不同的线程池,则意味着在大多数现实情况下我无法安全地使用并行流 . 请尝试以下示例 . 在单独的线程中... -
148 votesanswersviews
标准Kotlin库中提供了哪些Java 8 Stream.collect等价物?
在Java 8中,有Stream.collect允许对集合进行聚合 . 在Kotlin中,除了作为stdlib中的扩展函数的集合之外,它不以相同的方式存在 . 但目前尚不清楚不同用例的等价性 . 例如,top of the JavaDoc for Collectors是为Java 8编写的示例,当将它们移植到Kolin时,在不同的JDK版本上不能使用Java 8类,因此它们应该以不同的方式编写 .... -
1 votesanswersviews
用条件转换HashMap中的流
我是java的新手 . 我正在尝试从包含showNames的流创建一个HashMap . 我的问题是,名称可能是重复的,它们可以出现多次,这意味着它们必须映射在同一个键上,我在映射后尝试使用过滤器,但我不确定要放入什么条件 . X-> x.equals(x)的?流showNames的外观如下: LOTR,Lucifer,Breaking Bad,LOTR,Exorcist,The God... -
3 votesanswersviews
从HashMap获取最大的Set大小
我有一个 <Integer, Set<Integer>>. 的hashMap 我愿意使用java流操作获取具有最大大小的Set . 这是我的例子: public class Example { public static void main( String[] args ) { Map<Integer,Set<Integer>... -
4 votesanswersviews
在Java 8中将令牌流映射到n-gram流
我认为这是一个关于Java 8流的一个相当基本的问题,但我很难想到正确的搜索术语 . 所以我在这里问 . 我刚刚进入Java 8,所以请耐心等待 . 我想知道如何将标记流映射到n-gram流(表示为大小为n的标记数组) . 假设n = 3,那么我想转换下面的流 {1, 2, 3, 4, 5, 6, 7} 至 {[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6],... -
3 votesanswersviews
Java Stream和按字符串Levenshtein距离过滤
我试图找出使用Java流是否有一种优雅的方式来执行以下操作: 获取Pojos列表,其中一个字段是字符串(例如姓氏) 获取要搜索的字符串(例如surnameTypedIn) 在Levenshtein距离最小的列表中找到Pojo(我正在使用Apache Commons StringUtils.getLevenshteinDistance) 返回整个Pojo,而不仅仅是姓氏或距离 到... -
195 votesanswersviews
在Stream :: flatMap中使用Java 8的Optional
新的Java 8流框架和朋友们制作了一些非常简洁的Java代码,但是我遇到了一个看似简单的情况,简单易懂 . 考虑 List<Thing> things 和方法 Optional<Other> resolve(Thing thing) . 我想将 Thing 映射到 Optional<Other> 并获得第一个 Other . 显而易见的解决方案是使用 th... -
141 votesanswersviews
我应该退回收藏品还是流?
假设我有一个方法将只读视图返回到成员列表: class Team { private List<Player> players = new ArrayList<>(); // ... public List<Player> getPlayers() { return Collections.unmodifiab...