草庐IT

stream_parser

全部标签

java - 使用 Streams 将 BigDecimals 相加

我有一组BigDecimal(在本例中为LinkedList),我想将它们加在一起。是否可以为此使用流?我注意到Stream类有几个方法Stream::mapToIntStream::mapToDoubleStream::mapToLong每个都有一个方便的sum()方法。但是,正如我们所知,float和double算术几乎总是一个坏主意。那么,有没有一种方便的方法来总结BigDecimals?这是我目前的代码。publicstaticvoidmain(String[]args){LinkedListvalues=newLinkedList();values.add(BigDecima

Java 8 : How do I work with exception throwing methods in streams?

假设我有一个类和一个方法classA{voidfoo()throwsException(){...}}现在我想为A的每个实例调用foo,这些实例由如下流传递:voidbar()throwsException{Streamas=...as.forEach(a->a.foo());}问题:如何正确处理异常?该代码无法在我的机器上编译,因为我不处理foo()可能引发的异常。bar的throwsException在这里似乎没什么用。这是为什么呢? 最佳答案 您需要将您的方法调用包装到另一个不抛出检查异常的方法调用中。你仍然可以抛出任何Run

Java 8 : Lambda-Streams, 按带有异常的方法过滤

我在尝试Java8的Lambda表达式时遇到问题。通常它工作正常,但现在我有抛出IOException的方法。最好看看下面的代码:classBank{....publicSetgetActiveAccountNumbers()throwsIOException{Streams=accounts.values().stream();s=s.filter(a->a.isActive());Streamss=s.map(a->a.getNumber());returnss.collect(Collectors.toSet());}....}interfaceAccount{....boole

Java 8 Streams : multiple filters vs. 复杂情况

有时您想过滤具有多个条件的Stream:myList.stream().filter(x->x.size()>10).filter(x->x.isCool())...或者你可以对一个复杂的条件和一个singlefilter做同样的事情:myList.stream().filter(x->x.size()>10&&x->x.isCool())...我的猜测是第二种方法具有更好的性能特征,但我不知道。第一种方法在可读性方面胜出,但哪种方法对性能更好? 最佳答案 必须为两种备选方案执行的代码非常相似,以至于您无法可靠地预测结果。底层对象结

java - 将 Java 8 的 Optional 与 Stream::flatMap 一起使用

新的Java8流框架和friend们编写了一些非常简洁的Java代码,但我遇到了一个看似简单但很难简洁地做到的情况。考虑一个Listthings和方法Optionalresolve(Thingthing)。我想将Thing映射到Optional并获取第一个Other。显而易见的解决方案是使用things.stream().flatMap(this::resolve).findFirst(),但flatMap要求您返回一个流,并且Optional没有stream()方法(或者它是Collection或提供将其转换为或查看为Collection的方法)。我能想到的最好的是:things.s

c++ - 更多 spirit 疯狂 - 解析器类型(规则与 int_parser<>)和元编程技术

问题在底部以粗体显示,问题也通过蒸馏代码片段向末尾进行了总结。我正在尝试将我的类型系统(类型系统在类型和字符串之间往返)统一到一个组件中(由Lakos定义)。我正在使用boost::array,boost::variant,和boost::mpl,为了达到这个目的。我希望将我的类型的解析器和生成器规则统一在一个变体中。有一个未定义的类型,一个int4(见下文)类型和一个int8类型。变体读作variant.int4特征:structrbl_int4_parser_rule_definition{typedefboost::spirit::qi::rulerule_type;boost:

php - file_put_contents(meta/services.json) : failed to open stream: Permission denied

我是Laravel的新手。我试图打开http://localhost/test/public/我得到了Errorinexceptionhandler.我用谷歌搜索并使用chmod-R777app/storage更改了存储目录的权限,但无济于事。我在app.php中更改了debug=>true并访问该页面并在异常处理程序中得到错误:Thestreamorfile"/var/www/html/test/app/storage/logs/laravel.log"couldnotbeopened:failedtoopenstream:Permissiondeniedin/var/www/htm

node.js - 通过将 useNewUrlParser 设置为 true 来避免 "current URL string parser is deprecated"警告

我有一个数据库包装类,它与某个MongoDB实例建立连接:asyncconnect(connectionString:string):Promise{this.client=awaitMongoClient.connect(connectionString)this.db=this.client.db()}这给了我一个警告:(node:4833)DeprecationWarning:currentURLstringparserisdeprecated,andwillberemovedinafutureversion.Tousethenewparser,passoption{useNew

java - 为什么 Iterable<T> 不提供 stream() 和 parallelStream() 方法?

我想知道为什么Iterable接口(interface)不提供stream()和parallelStream()方法。考虑以下类:publicclassHandimplementsIterable{privatefinalListlist=newArrayList();privatefinalintcapacity;//...@OverridepublicIteratoriterator(){returnlist.iterator();}}它是Hand的一种实现,因为您可以在玩集换式卡牌游戏时手中有牌。基本上它包装了List,确保最大容量并提供一些其他有用的功能。最好直接将其实现为Li

java - 为什么 Stream<T> 没有实现 Iterable<T>?

在Java8中,我们有类Stream,奇怪的是有一个方法Iteratoriterator()所以你会期望它实现接口(interface)Iterable,这正是需要这种方法,但事实并非如此。当我想使用foreach循环遍历Stream时,我必须执行类似的操作publicstaticIterablegetIterable(Streams){returnnewIterable{@OverridepublicIteratoriterator(){returns.iterator();}};}for(Telement:getIterable(s)){...}我错过了什么吗?