草庐IT

wrap-duplex-stream

全部标签

java - 从java中的stream api调用方法

我是Java8的新手。我正在尝试以下场景。classNumbers{privateLonguserId;privateLongnumber1;privateLongnumber2;}Listlist=newArrayList();Input=={"userId":1,"number1":10,"number2":20}{"userId":1,"number1":20,"number2":40}输出::map{"userId":1,"sum":90//additionofallnumbersassociatedwithuserId}我想使用java8streamapi。我正在尝试这样,但

java - 为什么我需要将 IntStream 映射到 Stream<Character>

publicstaticintconstruction(StringmyString){Setset=newHashSet();intcount=myString.chars()//returnsIntStream.mapToObj(c->(char)c)//Streamwhyisthisrequired?.mapToInt(c->(set.add(c)==true?1:0))//IntStream.sum();returncount;}如果没有以下代码,上述代码将无法编译:.mapObj(c->(char)c)//Streamjava.util.stream.IntStream.ma

java - 不被 Stream.distinct() 过滤的相等对象

我有一个Element对象流,我需要根据相等性对其进行过滤。使用.distinct()似乎很容易,但我得到了异常结果。即使对象返回相等,它们也不会被.distinct()过滤。我错过了什么?证明如下——Listelements=getStream().filter(e->e.getName().equals("userId")).collect(Collectors.toList());System.out.println("Elementswithsamename:"+elements.size());if(elements.size()>1){System.out.println(

java - JAX-RS (Reasteasy) Response.readEntity 抛出 : IllegalStateException: RESTEASY003290: Entity is not backed by an input stream

我对发送JAX-RSPOST调用的方法进行了JUnit测试。为了独立于外部资源,我mock了REST客户端并表示应该返回一个虚拟响应。效果很好,没问题。但是:当调用myResponse.readEntity(String.class)时,我总是得到以下异常:java.lang.IllegalStateException:RESTEASY003290:Entityisnotbackedbyaninputstream这是我失败的代码片段:importcom.google.gson.JsonObject;importcom.google.gson.JsonPrimitive;importja

java - 如何使用 Streams 将 2D int 数组转换为 2D String 数组?

我正在尝试使用以下代码将2Dint数组转换为2DString数组:Arrays.stream(intArray).map(a->Arrays.stream(a).map(i->Integer.toString(i)).toArray()).toArray(String[][]::new);但是我在执行Integer.toString(i)时遇到编译时错误cannotconvertfromStringtoint。我认为这可能是因为我正在收集String数组中的int数组的流式传输结果,但map没有创建新的集合? 最佳答案 Arrays

java - 如何逐条读取一个 Stream?

JavaStream.forEach函数有一个严重的限制,即它的消费者不可能抛出已检查的异常。因此,我想一个一个地访问Stream的元素。我想做这样的事情:while(true){OptionaloptNewString=myStream.findAny();if(optNewString.isPresent())doStuff(optNewString.get());elsebreak;}然而,findAny是短路端子操作。也就是说,它关闭流。这段代码会在while循环的第二次迭代时崩溃。我不能简单地将所有元素放在一个数组中,然后一个一个地遍历该数组,因为可能有数千万个元素。请注意,

Java Stream API如何改进表达

我有以下代码:publicListgetEntriesForUserId(intuserId){Useru=DataBaseConnector.getAllUsers().stream().filter(user->user.getUserId()==userId).findFirst().orElse(newUser(-1,"Error");returnu.getEntries();}getEntries()返回List.如何将return语句添加到此lambda表达式中?就像是.map(User::getEntries)? 最佳答案

Java Streams 和 List of List 的列表

这个问题在这里已经有了答案:HowtoflattenallitemsfromanestedJavaCollectionintoasingleList?(6个答案)HowcanIturnaListofListsintoaListinJava8?(12个答案)关闭3年前。出于某种原因,我不知道如何使用流将这个深度嵌套的列表变成一个新列表。everyAinListcontains->ListwhereeveryBcontains->ListwhereeveryCcontains->List我尝试了许多不同的迭代,例如:Listnewlist=listA.getB().stream().fil

java - 使用 Java Streams 计算并打印一条链中的唯一列表项

我试图仅使用函数式编程结构(Streams、Collectors、lambda表达式)来实现这一点。假设list是一个String[]:{"Apple","Samsung","LG","Oppo","Apple","Huawei","Oppo"}我想从这个数组中打印出一个不同的品牌名称列表,并对它们进行编号,即:1.Apple2.Huawei3.LG4.Oppo5.Samsung我可以打印出唯一元素(排序):Stream.of(list).distinct().sorted().forEach(System.out::println);但这并没有显示前面的计数器。我尝试了Collect

java - 使用 Java 8 Stream API 将 List<X> 聚合到 List<X>

我有以下类(class):classMoney{CurrencyUnitcurrencyUnit;BigDecimalamount;}在我的应用程序中,我得到了一些随机列表Money对象:currencyUnit|amount---------------------EUR|5.1EUR|0USD|1.09EUR|42USD|3现在我想使用Java8StreamAPI来创建以下结果(只需为每个currencyUnit的数量调用BigDecimal::add):currencyUnit|amount---------------------EUR|47.1USD|4.09我已经知道/做过