2014-02-24 50 views
0

我有兩個HashMap;從列表中打印1行,然後從同一列表中打印第二行,而數據不會混合

  1. 一個HashMap中收集deviceIds(整數)和座標(緯度,經度)
  2. 第二HashMap中還收集deviceIds並且其緯度,經度座標的DeviceID在(INT)
指向的位置

這是我迄今爲止所做的;

int currentPosition = 0; 
for(Map.Entry<Integer, List<CoordinatesParams>> entry : deviceIdToCoordMap.entrySet()) 
{ 
    for(CoordinatesParams cps: entry.getValue()) 
    { 
     deviceCoordPosition.put(entry.getKey(), currentPosition); 
     currentPosition = (currentPosition + 1) % entry.getValue().size(); 
     for(Map.Entry<Integer, Integer> coordPos : deviceCoordPosition.entrySet()) 
     { 
      System.out.println("Device: " + coordPos.getKey() + " -> Position: " + coordPos.getValue() + " -> Coordinates (" + cps.getLatitude() + ", " + cps.getLongitude() + ")"); 
     } 
    } 
} 

當我運行此代碼時,會打印以下內容;

Device: 440 -> Position: 0 -> Coordinates (51.51092066, -0.14513969) 
Device: 440 -> Position: 1 -> Coordinates (51.51073703, -0.1455312) 
Device: 440 -> Position: 2 -> Coordinates (51.51059347, -0.14583707) 
Device: 440 -> Position: 3 -> Coordinates (51.51047662, -0.1461026) 
Device: 440 -> Position: 4 -> Coordinates (51.51049331, -0.14613747) 
Device: 440 -> Position: 5 -> Coordinates (51.51048997, -0.14616698) 
Device: 440 -> Position: 6 -> Coordinates (51.51040651, -0.14641106) 
Device: 440 -> Position: 7 -> Coordinates (51.51035643, -0.14649421) 
Device: 440 -> Position: 8 -> Coordinates (51.51032972, -0.14652103) 
Device: 440 -> Position: 9 -> Coordinates (51.51027296, -0.14666057) 
Device: 440 -> Position: 10 -> Coordinates (51.51022789, -0.1467517) 
Device: 440 -> Position: 11 -> Coordinates (51.51021286, -0.14695287) 
Device: 440 -> Position: 12 -> Coordinates (51.51020285, -0.14709234) 
Device: 440 -> Position: 13 -> Coordinates (51.51021119, -0.14715671) 
Device: 440 -> Position: 14 -> Coordinates (51.51039983, -0.14728009) 
Device: 440 -> Position: 15 -> Coordinates (51.51031302, -0.14770388) 
Device: 440 -> Position: 16 -> Coordinates (51.51023081, -0.14809616) 
Device: 440 -> Position: 17 -> Coordinates (51.51037396, -0.14816656) 
Device: 440 -> Position: 18 -> Coordinates (51.51053838, -0.1482477) 
Device: 440 -> Position: 19 -> Coordinates (51.51074914, -0.14835298) 
Device: 440 -> Position: 20 -> Coordinates (51.51081507, -0.14799356) 
Device: 440 -> Position: 21 -> Coordinates (51.51090271, -0.14752015) 
Device: 440 -> Position: 22 -> Coordinates (51.51114643, -0.14763012) 
Device: 440 -> Position: 23 -> Coordinates (51.5114227, -0.14775619) 
Device: 440 -> Position: 24 -> Coordinates (51.51160215, -0.14783665) 
Device: 440 -> Position: 25 -> Coordinates (51.51171149, -0.147264) 
Device: 440 -> Position: 26 -> Coordinates (51.51179829, -0.14679461) 
Device: 440 -> Position: 27 -> Coordinates (51.51195938, -0.14597654) 
Device: 440 -> Position: 28 -> Coordinates (51.51213215, -0.14510482) 
Device: 440 -> Position: 29 -> Coordinates (51.51223063, -0.14473334) 
Device: 440 -> Position: 30 -> Coordinates (51.5123045, -0.14447115) 
Device: 440 -> Position: 31 -> Coordinates (51.51207831, -0.14425389) 
Device: 440 -> Position: 32 -> Coordinates (51.51192098, -0.14410034) 
Device: 440 -> Position: 33 -> Coordinates (51.51178786, -0.14396623) 
Device: 440 -> Position: 34 -> Coordinates (51.51166058, -0.14383413) 
Device: 440 -> Position: 35 -> Coordinates (51.51149532, -0.14366381) 
Device: 440 -> Position: 36 -> Coordinates (51.51131795, -0.14348007) 
Device: 440 -> Position: 37 -> Coordinates (51.51114768, -0.14330506) 
Device: 440 -> Position: 38 -> Coordinates (51.51108133, -0.1434841) 
Device: 440 -> Position: 39 -> Coordinates (51.5109987, -0.1436866) 
Device: 440 -> Position: 40 -> Coordinates (51.51094236, -0.14381736) 
Device: 440 -> Position: 41 -> Coordinates (51.51105087, -0.1439441) 
Device: 440 -> Position: 42 -> Coordinates (51.51122406, -0.14414862) 
Device: 440 -> Position: 43 -> Coordinates (51.51129876, -0.14423512) 
Device: 440 -> Position: 44 -> Coordinates (51.51131169, -0.14427468) 
Device: 440 -> Position: 45 -> Coordinates (51.51130418, -0.14431558) 
Device: 440 -> Position: 46 -> Coordinates (51.51123699, -0.14445908) 
Device: 440 -> Position: 47 -> Coordinates (51.51112348, -0.14470249) 
Device: 440 -> Position: 48 -> Coordinates (51.5109649, -0.14504045) 
Device: 440 -> Position: 48 -> Coordinates (51.51092066, -0.14513969) 
Device: 443 -> Position: 0 -> Coordinates (51.51092066, -0.14513969) 
Device: 440 -> Position: 48 -> Coordinates (51.51073703, -0.1455312) 
Device: 443 -> Position: 1 -> Coordinates (51.51073703, -0.1455312) 
Device: 440 -> Position: 48 -> Coordinates (51.51059347, -0.14583707) 
Device: 443 -> Position: 2 -> Coordinates (51.51059347, -0.14583707) 
Device: 440 -> Position: 48 -> Coordinates (51.51047662, -0.1461026) 
Device: 443 -> Position: 3 -> Coordinates (51.51047662, -0.1461026) 
Device: 440 -> Position: 48 -> Coordinates (51.51049331, -0.14613747) 
Device: 443 -> Position: 4 -> Coordinates (51.51049331, -0.14613747) 
Device: 440 -> Position: 48 -> Coordinates (51.51048997, -0.14616698) 
Device: 443 -> Position: 5 -> Coordinates (51.51048997, -0.14616698) 
Device: 440 -> Position: 48 -> Coordinates (51.51040651, -0.14641106) 
Device: 443 -> Position: 6 -> Coordinates (51.51040651, -0.14641106) 
Device: 440 -> Position: 48 -> Coordinates (51.51035643, -0.14649421) 
Device: 443 -> Position: 7 -> Coordinates (51.51035643, -0.14649421) 
Device: 440 -> Position: 48 -> Coordinates (51.51032972, -0.14652103) 
Device: 443 -> Position: 8 -> Coordinates (51.51032972, -0.14652103) 
Device: 440 -> Position: 48 -> Coordinates (51.51027296, -0.14666057) 
Device: 443 -> Position: 9 -> Coordinates (51.51027296, -0.14666057) 
Device: 440 -> Position: 48 -> Coordinates (51.51022789, -0.1467517) 
Device: 443 -> Position: 10 -> Coordinates (51.51022789, -0.1467517) 
Device: 440 -> Position: 48 -> Coordinates (51.51021286, -0.14695287) 
Device: 443 -> Position: 11 -> Coordinates (51.51021286, -0.14695287) 
Device: 440 -> Position: 48 -> Coordinates (51.51020285, -0.14709234) 
Device: 443 -> Position: 12 -> Coordinates (51.51020285, -0.14709234) 
Device: 440 -> Position: 48 -> Coordinates (51.51021119, -0.14715671) 
Device: 443 -> Position: 13 -> Coordinates (51.51021119, -0.14715671) 
Device: 440 -> Position: 48 -> Coordinates (51.51039983, -0.14728009) 
Device: 443 -> Position: 14 -> Coordinates (51.51039983, -0.14728009) 
Device: 440 -> Position: 48 -> Coordinates (51.51031302, -0.14770388) 
Device: 443 -> Position: 15 -> Coordinates (51.51031302, -0.14770388) 
Device: 440 -> Position: 48 -> Coordinates (51.51023081, -0.14809616) 
Device: 443 -> Position: 16 -> Coordinates (51.51023081, -0.14809616) 
Device: 440 -> Position: 48 -> Coordinates (51.51037396, -0.14816656) 
Device: 443 -> Position: 17 -> Coordinates (51.51037396, -0.14816656) 
Device: 440 -> Position: 48 -> Coordinates (51.51053838, -0.1482477) 
Device: 443 -> Position: 18 -> Coordinates (51.51053838, -0.1482477) 
Device: 440 -> Position: 48 -> Coordinates (51.51074914, -0.14835298) 
Device: 443 -> Position: 19 -> Coordinates (51.51074914, -0.14835298) 
Device: 440 -> Position: 48 -> Coordinates (51.51081507, -0.14799356) 
Device: 443 -> Position: 20 -> Coordinates (51.51081507, -0.14799356) 
Device: 440 -> Position: 48 -> Coordinates (51.51090271, -0.14752015) 
Device: 443 -> Position: 21 -> Coordinates (51.51090271, -0.14752015) 
Device: 440 -> Position: 48 -> Coordinates (51.51114643, -0.14763012) 
Device: 443 -> Position: 22 -> Coordinates (51.51114643, -0.14763012) 
Device: 440 -> Position: 48 -> Coordinates (51.5114227, -0.14775619) 
Device: 443 -> Position: 23 -> Coordinates (51.5114227, -0.14775619) 
Device: 440 -> Position: 48 -> Coordinates (51.51160215, -0.14783665) 
Device: 443 -> Position: 24 -> Coordinates (51.51160215, -0.14783665) 
Device: 440 -> Position: 48 -> Coordinates (51.51171149, -0.147264) 
Device: 443 -> Position: 25 -> Coordinates (51.51171149, -0.147264) 
Device: 440 -> Position: 48 -> Coordinates (51.51179829, -0.14679461) 
Device: 443 -> Position: 26 -> Coordinates (51.51179829, -0.14679461) 
Device: 440 -> Position: 48 -> Coordinates (51.51195938, -0.14597654) 
Device: 443 -> Position: 27 -> Coordinates (51.51195938, -0.14597654) 
Device: 440 -> Position: 48 -> Coordinates (51.51213215, -0.14510482) 
Device: 443 -> Position: 28 -> Coordinates (51.51213215, -0.14510482) 
Device: 440 -> Position: 48 -> Coordinates (51.51223063, -0.14473334) 
Device: 443 -> Position: 29 -> Coordinates (51.51223063, -0.14473334) 
Device: 440 -> Position: 48 -> Coordinates (51.5123045, -0.14447115) 
Device: 443 -> Position: 30 -> Coordinates (51.5123045, -0.14447115) 
Device: 440 -> Position: 48 -> Coordinates (51.51207831, -0.14425389) 
Device: 443 -> Position: 31 -> Coordinates (51.51207831, -0.14425389) 
Device: 440 -> Position: 48 -> Coordinates (51.51192098, -0.14410034) 
Device: 443 -> Position: 32 -> Coordinates (51.51192098, -0.14410034) 
Device: 440 -> Position: 48 -> Coordinates (51.51178786, -0.14396623) 
Device: 443 -> Position: 33 -> Coordinates (51.51178786, -0.14396623) 
Device: 440 -> Position: 48 -> Coordinates (51.51166058, -0.14383413) 
Device: 443 -> Position: 34 -> Coordinates (51.51166058, -0.14383413) 
Device: 440 -> Position: 48 -> Coordinates (51.51149532, -0.14366381) 
Device: 443 -> Position: 35 -> Coordinates (51.51149532, -0.14366381) 
Device: 440 -> Position: 48 -> Coordinates (51.51131795, -0.14348007) 
Device: 443 -> Position: 36 -> Coordinates (51.51131795, -0.14348007) 
Device: 440 -> Position: 48 -> Coordinates (51.51114768, -0.14330506) 
Device: 443 -> Position: 37 -> Coordinates (51.51114768, -0.14330506) 
Device: 440 -> Position: 48 -> Coordinates (51.51108133, -0.1434841) 
Device: 443 -> Position: 38 -> Coordinates (51.51108133, -0.1434841) 
Device: 440 -> Position: 48 -> Coordinates (51.5109987, -0.1436866) 
Device: 443 -> Position: 39 -> Coordinates (51.5109987, -0.1436866) 
Device: 440 -> Position: 48 -> Coordinates (51.51094236, -0.14381736) 
Device: 443 -> Position: 40 -> Coordinates (51.51094236, -0.14381736) 
Device: 440 -> Position: 48 -> Coordinates (51.51105087, -0.1439441) 
Device: 443 -> Position: 41 -> Coordinates (51.51105087, -0.1439441) 
Device: 440 -> Position: 48 -> Coordinates (51.51122406, -0.14414862) 
Device: 443 -> Position: 42 -> Coordinates (51.51122406, -0.14414862) 
Device: 440 -> Position: 48 -> Coordinates (51.51129876, -0.14423512) 
Device: 443 -> Position: 43 -> Coordinates (51.51129876, -0.14423512) 
Device: 440 -> Position: 48 -> Coordinates (51.51131169, -0.14427468) 
Device: 443 -> Position: 44 -> Coordinates (51.51131169, -0.14427468) 
Device: 440 -> Position: 48 -> Coordinates (51.51130418, -0.14431558) 
Device: 443 -> Position: 45 -> Coordinates (51.51130418, -0.14431558) 
Device: 440 -> Position: 48 -> Coordinates (51.51123699, -0.14445908) 
Device: 443 -> Position: 46 -> Coordinates (51.51123699, -0.14445908) 
Device: 440 -> Position: 48 -> Coordinates (51.51112348, -0.14470249) 
Device: 443 -> Position: 47 -> Coordinates (51.51112348, -0.14470249) 
Device: 440 -> Position: 48 -> Coordinates (51.5109649, -0.14504045) 
Device: 443 -> Position: 48 -> Coordinates (51.5109649, -0.14504045) 

當DEVICEID 440結果打印,位置從0-48順利完美,但推出的DeviceID 443時,DEVICEID 440只停留在48位,但打印443的座標。

這是爲什麼?我將如何去打印它在打印deviceId 443之前打印的結果?

回答

1

您使用的是HashMap,這意味着將數據添加到集合時,數據的排序會丟失。你應該做什麼,看看LinkedHashMap的實現。這會按照添加它的順序保存數據,這可能會解決您的問題。 LinkedHashMap的文檔可以找到here

Map<String, String> lMap = LinkedHashMap<String, String>(); 
+0

感謝您的,我已改變'HashMap'到'LinkedHashMap'但我的打印結果是相同的,即裝置440個打印精細,但設備443和440中混合 – Dan