草庐IT

lambda表达式

全部标签

java - 用于替换特定子字符串前后特定字符的正则表达式

我正在完成JavaCodingBat练习。Here是我刚刚完成的:Givenastringandanon-emptywordstring,returnastringmadeofeachcharjustbeforeandjustaftereveryappearanceofthewordinthestring.Ignorecaseswherethereisnocharbeforeoraftertheword,andacharmaybeincludedtwiceifitisbetweentwowords.我的代码,有效:publicStringwordEnds(Stringstr,Strin

java - 如何使用 java8 lambda 表达式抛出自定义检查异常?

这个问题在这里已经有了答案:Java8:Lambda-Streams,FilterbyMethodwithException(15个答案)关闭7年前。我有下面的代码。privatestaticvoidreadStreamWithjava8(){Streamlines=null;try{lines=Files.lines(Paths.get("b.txt"),StandardCharsets.UTF_8);lines.forEachOrdered(line->process(line));}catch(IOExceptione){e.printStackTrace();}finally{

java - Lambda Metafactory 变量捕获

当使用MethodHandles.Lookup、MethodHandle、MethodType等手动创建lambda时,如何实现变量捕获?例如,没有捕获:publicIntSupplierfoo(){returnthis::fortyTwo;}/***Wouldnotnormallybevirtual,butohwell.*/publicintfortyTwo(){return42;}及其笨拙的形式,使用java.lang.invoke中的内容:publicIntSupplierfoo(){MethodHandles.Lookuplookup=MethodHandles.lookup(

java - 单行/单行lambda中的Eclipse断点?

如何在单行lambda中设置断点?例如当调用outer.doSth(event)时,我希望(eclipse)调试器停止:observable.addCallback(event->outer.doSth(event)); 最佳答案 你不能。如果你这样重构它:observable.addCallback(event->{returnouter.doSth(event);});你可以。 关于java-单行/单行lambda中的Eclipse断点?,我们在StackOverflow上找到一个类

java - Java 中的这段递归 lambda 调用是如何工作的

我最近在Java中看到了这段代码。它涉及函数和打印斐波那契数,并且有效。publicclassAppLambdaSubstitution{publicstaticFunctionY(Function,Function>f){returnx->f.apply(Y(f)).apply(x);}publicstaticvoidmain(String[]args){Functionfib=Y(func->x->{if(x让我感到困惑的部分是returnx->f.apply(Y(f)).apply(x);。Y(f)不是递归调用Y方法吗?我们一直使用函数f作为参数调用它。对我来说,这个递归调用没有

java - Intellij IDEA - 使用流 API 导致错误评估表达式

我正在努力处理包含一些StreamAPI方法的评估表达式。示例:sample.reads.stream().filter(s->s.l.length()这也行不通:sample.reads.stream().filter(s->s.l.length()给出:但是,sample.reads.stream().count()或sample.reads.stream().toArray()与任何其他表达式一样工作正常(如果我将流API调用放入代码中,它也可以正常工作)配置:java:jdk1.8.0_144想法:IntelliJIDEA2017.3.1(社区版)构建#IC-173.3942.

java - 使用 Java lambda 从两个 map 构建 map

我有一些代码需要帮助...我正在尝试使用两个map作为源并同时使用javalambda来构建mapMap>motorsMapping=newHashMap();motorsMapping.put("CAR",Collections.singletonList("AUDI"));motorsMapping.put("CAR_AND_BIKE",Arrays.asList("AUDI","BMW"));motorsMapping.put("BIKE",Collections.singletonList("BMW"));Map>models=newHashMap();models.put("

java - 我想有效地将​​正则表达式应用于整个文件

我有一个复杂的正则表达式,我想将它与整个大文件的内容进行匹配。主要关注的是效率,因为文件确实非常大,很可能会耗尽内存。有没有一种方法可以在通过正则表达式匹配器抽取内容时以某种方式“缓冲”内容? 最佳答案 是的,Pattern.match()将采用CharSequence。如果您的输入已经在一个字符集中,该字符集正好使用2个字节来表示没有任何“序言”的字符,您只需要:ByteBufferbb=...;//acquirememorymappedbytebufferCharBuffercb=bb.asCharBuffer();//geta

java - lambda 表达式的类型推断限制

虽然Java8的类型推断似乎有了很大改进,但我发现了一个可能的限制,我不确定是否缺少一些解决方法。场景:classFoo{voidapply(Function>bar){}}classBar{voidsetBar(Stringbar){}}Foofoo=newFoo();这个有效:foo.apply(bar->bar::setBar);这不是:foo.apply(bar->bar::setBar);有什么方法可以让类型推断在这种情况下起作用吗? 最佳答案 这是一个eclipse错误。两者都可以用Netbeans或javac编译。Ec

java - 分隔路径的正则表达式

这个问题在这里已经有了答案:javaregularexpressiontomatchfilepath(9个回答)关闭7年前。您好,我正在尝试使用Java正则表达式从以下路径信息中获取所需的上下文路径。Stringpath="/Systems/lenovo/";我想编写正则表达式来分别获取“/Systems”和“/lenovo”。我使用组尝试了以下正则表达式,但没有按预期工作。StringsystemString=path.replaceAll("(.*)(/\\w+)([/][\\w+])","$2")-toget"/Systems"-notworkingStringlenovoStr