草庐IT

io-Stream

全部标签

java - 仅使用两个键和奇数或偶数列表索引作为值将 List 转换为 Map - Java 8 Stream

我想将列表转换为map,只使用两个字符串值作为键值。然后作为值只是包含来自输​​入列表的奇数或偶数索引位置的元素的字符串列表。这是旧时尚代码:Map>map=newHashMap();Listlist=Arrays.asList("one","two","three","four");map.put("evenIndex",newArrayList());map.put("oddIndex",newArrayList());for(inti=0;i如何使用流将此代码转换为Java8以获得此结果?{evenIndex=[one,three],oddIndex=[two,four]}我目前

java - 从关闭文件方法抛出 IOException 时如何管理事务(包括文件 IO)

我最近开始使用Spring的数据源事务管理器。我现在有问题。我的事务包括对数据库表的更新和对文件的写操作。它工作正常,但我对文件I/O有一些疑问。正如您在下面看到的,我已经将我的bean的openFile和closeFile方法分别配置为init方法和destroy方法,这反过来又提供了这些方法,就像构造函数和析构函数一样被调用。如果文件没有正确关闭,一些记录可能没有成功写入output.txt文件,这意味着我也无法正确处理事务管理。但是,我想回滚那些尚未附加到平面文件的数据库更新。使用我的解决方案,似乎不可能将fileClose方法添加到事务中。有谁知道如何正确执行此所需操作?如有任

java - 使用 Spring Cloud Stream 将 RabbitMQ 消费者绑定(bind)到现有队列

我使用RabbitMQ网络用户界面创建了一个主题交换TX并绑定(bind)到交换两个队列TX.Q1和TX.Q2,每个都与路由键rk1和rk2相应地绑定(bind),并向交换生成少量消息。现在我想使用SpringCloudStream创建一个消费者,它只会从Q1获取消息。我尝试使用配置:spring.cloud.stream.bindings.input.destination=TXspring.cloud.stream.bindings.input.group=Q1以及消费消息的方法的注解@StreamListner(Sink.INPUT)。结果我可以看到消费者创建了一个同名队列(或绑

java - 为什么不推荐基于 AtomicInteger 的 Stream 解决方案?

假设我有这份水果list:-Listf=Arrays.asList("Banana","Apple","Grape","Orange","Kiwi");我需要为每个水果添加一个序列号并打印出来。水果或序列号的顺序无关紧要。所以这是一个有效的输出:-4.Kiwi3.Orange1.Grape2.Apple5.Banana解决方案#1AtomicIntegernumber=newAtomicInteger(0);Stringresult=f.parallelStream().map(i->String.format("%d.%s",number.incrementAndGet(),i)).

java - 使用 Java Stream API 对数组进行部分降序排序

我需要知道如何使用StreamAPI按降序对原始唯一整数数组进行部分排序。比如有{1,2,3,4,5}这样的数组,我想得到{5,4,3,1,2}-首先是3个最大的元素,然后是其余的。甚至可以使用流吗?我检查了文档-有两种方法skip和limit但它们会更改流内容并从数组的开头开始工作。我可以像这样对整个数组进行排序Arrays.stream(arr).boxed().sorted(Collections.reverseOrder()).mapToInt(Integer::intValue).toArray();但是如何使这个排序部分化呢?我说StreamAPI是因为我希望它写得很好。而

java - 一种从 Clojure 中的 java.io.File.listFiles 中剥离返回值的方法

我在Clojure中调用一个java函数来获取文件列表。(require'[clojure.java.io:asio])(str(.listFiles(io/file"/home/loluser/loldir")))我得到了一大堆像这样的字符串#等我如何摆脱括号并将它们放在某种形式的数组中以便另一个函数可以访问它? 最佳答案 这些字符串只是JavaFile对象的打印格式。参见Filejavadoc哪些操作可用。如果你想要文件路径作为字符串,它会是这样的(map#(.getPath%)(.listFiles(io/file"/home

java - 如何根据 Java 8 Stream 过滤器的输出计算百分比

我想获取一个作业列表(称为resultStream)并计算完全完成的作业的百分比。publicclassJob{privateDatedate;privateStringsuccess;//Getterandsetterandconstructor.}列表包含以下内容:newJob("TODAY","YES");newJob("TODAY","YES");newJob("YESTERDAY","YES");newJob("TODAY","NO");这是我目前的代码:resultStream.stream().parallel().filter(result->{if("YES".con

Java 8 : First use of stream() or parallelStream() very slow - Usage in practice meaningful?

在过去的几天里,我用Java8中的外部迭代、流和并行流进行了一些测试,并测量了执行时间的持续时间。我还阅读了我必须考虑的预热时间。但是还有一个问题。当我第一次对集合调用方法stream()或parallelStream()时,执行时间比外部迭代长。我已经知道,当我在同一集合上更频繁地调用stream()或parallelStream()并计算执行时间时,parallelStream()确实比外部迭代更快。但是由于在实践中一个集合通常也只迭代一次,所以我只看到使用流或并行流的缺点。所以我的问题是:如果我只迭代一次集合,使用流或parallelStream()是个好主意,还是执行时间总是比

java - 不使用 java.io 写入磁盘

假设java.io的使用已被阻止。有哪些替代方法可以使用Java/Groovy语言特性将简单的“HelloWorld!”文本文件写入磁盘? 最佳答案 如果只有java.io被阻止(你说java.io导入被阻止),你可以使用java.nio写入文件。看中央Files类(class)。在java.nio中,文件/文件夹用java.nio.Path对象表示,它也是java.nio包的一部分(而不是java.io).将"HelloWorld!"写入磁盘的文本文件的示例:Files.write(Paths.get("/your/folder/

java.io.IOException : No X-Jenkins-CLI2-Port (jenkins cli not working ) 异常

我正在尝试运行以下命令:java-jarjenkins-cli.jar-shttp://jenkins_URL/--usernamemyusername--passwordmypassword帮助但是我得到了错误:java.io.IOException:NoX-Jenkins-CLI2-Portamong[null,X-Required-Permission,X-Jenkins,X-You-Are-In-Group,X-Hudson,Content-Length,Expires,X-You-Are-Authenticated-As,X-Permission-Implied-By,Set