草庐IT

data-stream

全部标签

java - 外部洗牌 : shuffling large amount of data out of memory

我正在寻找一种方法来随机播放不适合内存(大约40GB)的大量数据。我有大约3000万个条目,长度可变,存储在一个大文件中。我知道该文件中每个条目的开始和结束位置。我需要随机播放这些不适合RAM的数据。我想到的唯一解决方案是将包含从1到N的数字的数组打乱,其中N是条目数,与Fisher-Yatesalgorithm然后根据此顺序将条目复制到新文件中。不幸的是,此解决方案涉及大量查找操作,因此会非常慢。是否有更好的解决方案来对均匀分布的大量数据进行洗牌? 最佳答案 首先解决shuffle问题。为此,请为您的条目发明一种哈希算法,该算法会

java - Spring : Multipart form data request : Read dynamic parameter from request

我正在使用Spring框架并能够成功将文件上传到服务器上。................//Controller层@RequestMapping(value="/upload.do",method={RequestMethod.POST})publicStringaddEditLocationToCompany(Modelmodel,@RequestParam("description")Stringdesc,@RequestParam(value="locationMapFile",required=false)CommonsMultipartFilelocationMapFile

java - 如何使用 Spring Data JPA 查询 map 值?

所以我的数据库模型是这样的:我有Stores和每个Store有一个本地化名称。所以我选择将本地化名称表示为Map像这样:publicclassStore{privateMapname;}如您所见,它是的mapLocalizedValue在哪里是这样一个类:@EmbeddablepublicclassLocalizedValue{@Column(name="value")privateStringvalue;}一切都很好。但是我遇到了一个问题,我想查询我的SpringDataJPA存储库并找到所有具有给定英文名称的商店。所以我的存储库方法如下所示:StorefindByName(Map.

java - 如何在 Spring Data(和 Spring Data Rest)中通过 Java Config 配置审计?

我正在尝试使用SpringData的审计功能(与SpringBoot和SpringDataRest结合使用),但在保存时未设置审计字段。尝试保存空“创建者”时,所有保存都会导致约束异常。根据springdatadocs,我应该能够在我的实体上放置适当的审计注释(@CreatedDate/等),并使AuditorAware可用于应用程序上下文。我知道我的审计员​​感知bean是通过在调试器中设置断点创建的。我的问题是:1)我是否有必要创建一个AuditingEntityListener,或者我是否应该期望通过@EnableJpaAuditing提供一个?(关于java配置的文档中并不清楚

java - java8 Stream的filter()和map()方法是否使用迭代?

我在Person.java文件中有一个POJO:publicclassPerson{privateStringname;privateintage;publicPerson(Stringn,inta){name=n;age=a;}publicStringgetName(){returnname;}publicintgetAge(){returnage;}publicbooleanisAdult(){returngetAge()>=18;}}然后我有一个Demo.java文件,它创建一个人员列表并使用流来过滤和打印列表中的内容:importjava.util.*;publicclassD

Java 8 Streams - 分组为单个值

这个问题在这里已经有了答案:Java8ListintoMap(23个回答)关闭2年前。我目前正在使用List>我试图在map中对各种键进行分组。这似乎可以很好地使用Java8Stream小号:Map>>>collect=list.stream().collect(Collectors.groupingBy(item->item.get("key1"),Collectors.groupingBy(item->item.get("key2"))));不出所料,这给了我一个Map>>>这适用于可能的分组结果大于1的情况。例如,我有各种示例,其中完成的分组将总是导致最低级别列表中的单个项目。行

基于谓词的Java 8 Stream indexOf方法

这个问题在这里已经有了答案:StreamWaytogetindexoffirstelementmatchingboolean(6个回答)关闭4年前。我刚刚遇到这样的情况,我需要知道一个元素在列表中的索引(位置),但只有一个谓词表达式来标识该元素。我找了一个类似的Stream函数intindex=list.stream().indexOf(e->"TESTNAME".equals(e.getName()));但无济于事。当然,我可以这样写:intindex=list.indexOf(list.stream().filter(e->"TESTNAME".equals(e.getName()

java - 从java中的stream api调用方法

我是Java8的新手。我正在尝试以下场景。classNumbers{privateLonguserId;privateLongnumber1;privateLongnumber2;}Listlist=newArrayList();Input=={"userId":1,"number1":10,"number2":20}{"userId":1,"number1":20,"number2":40}输出::map{"userId":1,"sum":90//additionofallnumbersassociatedwithuserId}我想使用java8streamapi。我正在尝试这样,但

java - 为什么我需要将 IntStream 映射到 Stream<Character>

publicstaticintconstruction(StringmyString){Setset=newHashSet();intcount=myString.chars()//returnsIntStream.mapToObj(c->(char)c)//Streamwhyisthisrequired?.mapToInt(c->(set.add(c)==true?1:0))//IntStream.sum();returncount;}如果没有以下代码,上述代码将无法编译:.mapObj(c->(char)c)//Streamjava.util.stream.IntStream.ma

java - Spring Data CrudRepository 和事务

我正在尝试在CrudRepository接口(interface)上实现交易。我是这方面的初学者,我目前的问题是,当收到来自不同客户的大量请求时,我有时会收到重复的请求。为避免这种情况,我想在Spring中使用SQL事务及其实现,但我无法使其正常工作。这是我尝试过的方法:@Repository@EnableTransactionManagement@TransactionalpublicinterfaceApplicationPackageDaoextendsCrudRepository{/***Findifarecordexistsforthispackagename,*@param