我使用java8流.这是我的数据结构:
Map< String, List< String >> mmessage = getSomeMessage();
Run Code Online (Sandbox Code Playgroud)
然后我通过地图和列表迭代:
mmessage.entrySet().stream().forEach( entry -> {
entry.getValue().stream().forEach( li -> {
if ( lis.indexOf( li ) == - 1 ) {
lis.add( lineItem );
}
});
});
Run Code Online (Sandbox Code Playgroud)
但得到并发修改异常:
java.util.ConcurrentModificationException
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1380)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at com.web3.buyer.roomba.RoombaTurn.lambda$received$3(RoombaTurn.java:296)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at com.web3.buyer.roomba.RoombaTurn.received(RoombaTurn.java:295)
at com.web3.buyer.SystemBus.lambda$publishToTheQueue$0(SystemBus.java:51)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
从我的理解迭代通过map\list不应该导致这种行为.
如今,我一直受到创建数据仓库以存储和处理大量数据的挑战.预计金额每天超过70亿次.数据应保存7天.平均事件大小约为0.5 - 1 Kb.我们需要将数据处理为:
目前我正在评估:
所以我对以下内容感兴趣:
bigdata cloudera google-bigquery amazon-redshift cassandra-2.0
我有一个工作池,我定期使用ScheduledExecutorService帮助.现在我想停止定期执行某些任务,而其他任务应该不受影响.这个仪表的好方法是什么?
在我用过guava库的项目中.我有这样的事情:
Optional< User > loginUser( ) {
User user = storage.get( request.id );
boolean success = ( user == null ) ?
false : user.password.equals( request.password );
return success == true ? Optional.of( user ) :Optional.absent ( );
}
Run Code Online (Sandbox Code Playgroud)
和编译器给我错误:
无法从Optional <Object>强制转换为Optional <User>
更多关于这方面的工作:
Optional< User > empty = Optional.absent ( );
return success == true ? Optional.of( user ) : empty;
Run Code Online (Sandbox Code Playgroud)
如何逃避创建空变量?
java ×3
bigdata ×1
cloudera ×1
concurrency ×1
generics ×1
guava ×1
java-8 ×1
java-stream ×1
lambda ×1