用Java8的 stream 操作外部集合是否存在并發(fā)問(wèn)題?
問(wèn)題描述
描述:取出 cp中非 DataTime,下面代碼是否合理,是否存在對(duì)deviceDataMap 并發(fā)問(wèn)題?
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);} });
問(wèn)題解答
回答1:并行流就是一個(gè)把內(nèi)容分成多個(gè)數(shù)據(jù)塊,并用不不同的線程分別處理每個(gè)數(shù)據(jù)塊的流
上面代碼應(yīng)該不存在并發(fā)問(wèn)題,看樣還是對(duì)java8 stream的原理沒(méi)搞明白啊》》》》http://blog.csdn.net/sunjin94...
相關(guān)文章:
1. 關(guān)于docker下的nginx壓力測(cè)試2. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問(wèn)題3. mac里的docker如何命令行開(kāi)啟呢?4. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””5. docker容器呢SSH為什么連不通呢?6. nignx - docker內(nèi)nginx 80端口被占用7. docker - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?8. docker-compose 為何找不到配置文件?9. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????10. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問(wèn)題。

網(wǎng)公網(wǎng)安備