用Java8的 stream 操作外部集合是否存在并發(fā)問題?
問題描述
描述:取出 cp中非 DataTime,下面代碼是否合理,是否存在對(duì)deviceDataMap 并發(fā)問題?
Map<String,Map<String,String>> deviceDataMap = new HashMap<>(); String cp = 'DataTime=20040506010101;SB1-RT=1.1;SB2-RT=2.1';
List<String> cpValusList = Arrays.asList(cp.split(';'));
cpValusList.stream().filter(item -> !item.contains('DataTime=')).forEach(item ->{String deviceId = item.substring(0,item.indexOf('-'));if(!deviceDataMap.containsKey(deviceId)){ Map<String,String> oneDeviceIdValusMap = new HashMap<>(); List<String> deviceIdValueList = Arrays.asList(item.split(',')); deviceIdValueList.forEach(value->{String[] temp = value.split('=');oneDeviceIdValusMap.put(temp[0], temp[1]); });deviceDataMap.put(deviceId, oneDeviceIdValusMap);} });
問題解答
回答1:并行流就是一個(gè)把內(nèi)容分成多個(gè)數(shù)據(jù)塊,并用不不同的線程分別處理每個(gè)數(shù)據(jù)塊的流
上面代碼應(yīng)該不存在并發(fā)問題,看樣還是對(duì)java8 stream的原理沒搞明白啊》》》》http://blog.csdn.net/sunjin94...
相關(guān)文章:
1. Thinkphp 下載地址找不到了?2. index.php錯(cuò)誤,求指點(diǎn)3. 老師 我是一個(gè)沒有學(xué)過php語言的準(zhǔn)畢業(yè)生 我希望您能幫我一下4. 開了mc服務(wù)器但是不會(huì)全服同步數(shù)據(jù)5. 導(dǎo)入數(shù)據(jù)庫不成功6. mysql如何配置遠(yuǎn)程php外網(wǎng)鏈接數(shù)據(jù)庫7. 在cmd下進(jìn)入mysql數(shù)據(jù)庫,可以輸入中文,但是查看表信息,不顯示中文,是怎么回事,怎新手,請老師8. nginx 504 Gateway Time-out 請問如何設(shè)置9. PHP單例模式10. php自學(xué)從哪里開始?
