草庐IT

collection_time

全部标签

java - 在 Stream 和 Collections API 之间进行选择

考虑以下打印List中最大元素的示例:Listlist=Arrays.asList(1,4,3,9,7,4,8);list.stream().max(Comparator.naturalOrder()).ifPresent(System.out::println);使用Collections.max方法也可以达到同样的目的:System.out.println(Collections.max(list));上面的代码不仅更短而且更易读(在我看来)。我想到了类似的示例,例如binarySearch与filter与findAny结合使用。我知道Stream可以是一个无限管道,而不是一个Co

java - 在消费者方法中创建的 Lambda Collect 元素

我正在从丑陋的嵌套for循环转变为java中设计精美的lambda表达式。这是我的实际代码for(Stringfoo:foos){for(Barbar:bars){if(bar.getFoo().equals(foo)){FooBarfooBar=newFooBar();fooBar.setBar(bar);listOfFooBar.add(fooBar);break;}}}我实际的lambda代码来替换上面的代码foos.forEach(i->bars.stream().filter(p->p.getFoo().equals(i)).findFirst().ifPresent(p->

java - List.of(...) 或 Collections.unmodifiableList()

如果你有一个Liststrings例如,你会继续写:Collections.unmodifiableList(strings)或切换到:List.of(strings.toArray(newString[strings.size()]))实例化对性能(内存和运行时方面)的初始影响是什么?List.of中是否有运行时优势?变体? 最佳答案 这并不是一个很好的比较,因为这些方法做了不同的事情:Collections::unmodifiable...创建一个不可修改的View。它不是是不可变的,因为如果您更改原始的支持集合(您的示例中的l

java - 为什么 java.time.Period#normalized() 不标准化天数?

在Java类java.time.Period中,方法normalized()在其Javadoc中具有以下内容:Thisnormalizestheyearsandmonthsunits,leavingthedaysunitunchanged.父类(superclass)的方法在其Javadoc中有以下内容:Theprocessofnormalizationisspecifictoeachcalendarsystem.Forexample,intheISOcalendarsystem,theyearsandmonthsarenormalizedbutthedaysarenot,[...]我

java - 在 java.time.LocalTime 之间(第二天)

请建议是否有API支持来确定我的时间是否在2个LocalTime实例之间,或者建议一种不同的方法。我有这个实体:classPlace{LocalTimestartDay;LocalTimeendDay;}它存储工作日的开始和结束时间,即从“9:00”到“17:00”,或者从“22:00”到“5:00”的夜总会。我需要实现一个Place.isOpen()方法来确定该地点在给定时间是否开放。一个简单的isBefore/isAfter在这里是行不通的,因为我们还需要判断结束时间是否在第二天。当然,我们可以比较开始和结束时间并做出决定,但我想要一些没有额外逻辑的东西,只是一个简单的betwee

java - 了解 Collection.isEmpty() 和 Collection.size() == 0 之间的区别?

这个问题在这里已经有了答案:CheckingifacollectionisemptyinJava:whichisthebestmethod?(13个答案)Whyislist.size()>0slowerthanlist.isEmpty()inJava?(9个回答)关闭8年前。我已经阅读了很多关于isEmpty()和size()之间的区别的文章>0用于检查collection是否为空或不,发现isEmpty()的性能优于size()但我无法轻易理解为什么isEmpty()的性能很好,即使isEmpty()里面只有size==0吗?我的问题是:任何人都可以轻松解释在哪种情况下isEmpty

java - Groovy casting collection 不请自来

我有一些用Java编写的使用泛型的代码。这是一个简单的版本://InJavapublicinterfaceTestable{voidtest();}publicclassTestableImplimplementsTestable{@Overridepublicvoidtest(){System.out.println("hello");}}publicclassTest{publicvoidrunTest(Collectionts){System.out.println("Collection");for(Tt:ts)t.test();}publicvoidrunTest(Objec

java - 使用 Jackson 将 java.time.localdate 序列化为 json

我正在编写一个Java8SpringMVC应用程序,该应用程序使用REST服务与遗留ProgressOpenEdge应用程序进行通信(我为此使用了Spring的RestTemplate)。我需要从Progress应用程序读取和写入的数据包含一些日期。在Java应用程序中,我使用java.time.LocalDate数据类型来表示这些字段,并且我使用Jackson将数据序列化/反序列化到Json中/从Json中反序列化。我遇到的问题如下。当我从进度应用程序发送数据时,日期作为“2015-01-02”发送,并按预期作为LocalDate存储在我的Java实体中。当数据发送到Web前端时,J

java - 在 java.util.stream.Stream 接口(interface)的两个 collect 方法中,其中一个构造不佳吗?

在java.util.stream.Stream接口(interface)中,Rcollect(Suppliersupplier,BiConsumeraccumulator,BiConsumercombiner);组合器是一个BiConsumer,而在Rcollect(Collectorcollector);组合器是一个BinaryOperator这不过是一个BiFunction.虽然后一种形式清楚地定义了组合后组合对象的引用,但前一种形式没有。那么任何Stream实现库如何知道前一种情况下的组合对象是什么? 最佳答案 在Java9

Java Collection 满时将哪些页面写入磁盘?

一位同事提到他听说过一个轻量级集合,当内容太满时会自动分页到磁盘-但他记不起名字了。我想它看起来像这样:PagingCollectionpagingCollection=newPagingArrayList();pagingCollection.setMaxSizeInMemory(500);for(intx=0;x然后会将x=0到x=500推送到磁盘。关键是能够在不将整个内容加载到内存中的情况下对其进行迭代..这适用于内存量较少的胖客户端。有人知道它(或类似的东西)吗? 最佳答案 好吧,我所知道的唯一具有这种功能的工具是流行系统: