草庐IT

STREAM_ALARM

全部标签

java - 如何在 java 8 stream api 中使用 guava Predicates 作为过滤器

GuavaPredicates不能开箱即用作为java8流API的过滤器。例如这是不可能的:Numberfirst=numbers.stream().filter(com.google.common.base.Predicates.instanceOf(Double.class))).findFirst().get();如何将guava谓词转换为java8谓词,如下所示:publicstaticPredicatetoJava8(com.google.common.base.PredicateguavaPredicate){return(e->guavaPredicate.apply(e

java - 比 Stream.peek() 更好的方法

“peek”主要用于调试。如果我想在流中间调用流上的方法,改变流对象的状态,该怎么办。Stream.of("Karl","Jill","Jack").map(Test::new).peek(t->t.setLastName("Doe"));我能做到:Stream.of("Karl","Jill","Jack").map(Test::new).map(t->{t.setLastName("Doe");returnt;});但这看起来很丑陋。这是不应该做的事情还是有更好的方法来做到这一点?编辑:forEach可以工作,除了它是一个终端操作,所以你不能在之后继续处理流。然后我希望制作一个Co

java - 使用普通 JAVA Stream 收集 int 数组的值

在我的程序中,我尝试使用流打印排序的int数组。但是我在使用普通流时得到错误的输出。使用int流时会打印正确的详细信息。有关详细信息,请参阅下面的核心代码段。packagecom.test.sort.bubblesort;importjava.util.Arrays;importjava.util.stream.Collectors;importjava.util.stream.IntStream;publicclassBubbleSortWithRecursion{publicstaticvoidbubbleSort(int[]arr,intn){if(nnextValue){arr

java - 使用 Stream 从二维整数数组中查找奇数

我正在尝试如下代码int[][]mat=newint[][]{newint[]{2,4,6},newint[]{8,9,12}};intoddInAll=Arrays.stream(mat).filter(i->i%2!=0).findFirst().getAsInt();但这给了我错误|Error:|badoperandtypesforbinaryoperator'%'|firsttype:int[]|secondtype:int|intoddInAll=Arrays.stream(mat).filter(i->i%2!=0).findFirst().getAsInt();|^---

java - 如何使用 Java stream api 过滤 map ?

Mapmap=newHashMap();map.put(1,"f");map.put(2,"I");map.put(3,"a");map.put(4,"c");....etc现在我有一个列表:Listpicks={1,3}我想取回一个字符串列表,即在“选择”列表中找到的与键值匹配的映射值。所以,我希望取回{"f","a"}作为结果。有没有办法使用javastreamapi以优雅的方式做到这一点?当只有一个值时,我是这样做的:map.entrySet().stream().filter(entry->"a".equals(entry.getValue())).map(entry->ent

java - 使用 Stream 比较两个集合 - anyMatch

我想比较list2中的任何对象是否存在于list1中。我可以遍历两个列表并使用.contains()比较所有元素,但我想知道是否有更有效的方法。我找到了this我正在尝试实现建议的方法:Listlist1;Listlist2;booleananyMatch=list1.stream().anyMatch(x->x.equals(list2.stream()));System.out.println(anyMatch);当我这样做时,我经常得到false,即使我期望的是true。怎么会? 最佳答案 根据您的评论,您有两个列表,list

Java 8 Stream - 如何返回用要查找的项目列表替换字符串内容

我希望使用java8.stream()替换下面的代码或.foreach()。但是我在这样做时遇到了麻烦。这可能非常简单,但我正在寻找一种实用的思考方式:)我可以迭代,没问题,但由于可变性问题,返回修改后的字符串是个问题。有人有什么想法吗?ListtoRemove=Arrays.asList("1","2","3");Stringtext="Hello123";for(Stringitem:toRemove){text=text.replaceAll(item,EMPTY);}谢谢! 最佳答案 由于您不能使用流来修改text变量,您必

java - Spring Web 客户端 : How to stream large byte[] to file?

好像是SpringRestTemplate如果不将响应全部缓冲在内存中,则无法将响应直接流式传输到文件。使用较新的Spring5WebClient实现此目的的正确方法是什么??WebClientclient=WebClient.create("https://example.com");client.get().uri(".../{name}",name).accept(MediaType.APPLICATION_OCTET_STREAM)....?我看到人们已经通过RestTemplate找到了解决此问题的一些解决方法/技巧,但我更感兴趣的是使用WebClient以正确的方式进行操作

c# - PLINQ (C#/.Net 4.5.1) 与 Stream (JDK/Java 8) 性能对比

我正在尝试比较Java8和PLINQ(C#/.Net4.5.1)中的并行流之间的性能。这是我在我的机器上得到的结果(系统制造商DellInc.系统型号PrecisionM4700ProcessorIntel(R)Core(TM)i7-3740QMCPU@2.70GHz,2701Mhz,4Core(s),8Logical安装的处理器物理内存(RAM)16.0GB操作系统名称MicrosoftWindows7EnterpriseVersion6.1.7601ServicePack1Build7601)C#.Net4.5.1(X64版本)连续剧:470.7784、491.4226、502.4

Java 8 Stream map 调用字符串与组合成一个

这个问题在这里已经有了答案:Usingmultiplemapfunctionsvs.ablockstatementinamapinajavastream(2个答案)关闭2年前。使用Java8StreamAPI时,将多个映射调用合并为一个调用是否有好处,还是不会真正影响性能?例如:stream.map(SomeClass::operation1).map(SomeClass::operation2);对比stream.map(o->o.operation1().operation2());