2011-08-18 6 views
0

Salut, j'ai deux cartes de hachage comme suitFusion de deux hashmaps valeurs multiples basée sur la valeur

[AdGenres-b:key:[177], SongTitle:[What I've Done], ArtistName:[Linkin Park], MusicVideoRating:[TV-14], PlayId:[1367], AdGenres-b:value:[Rock], MusicVideoProvider:[Warner Music Group], AssetId:[91744]] 

[AdGenres-b:key:[184], SongTitle:[What I've Done], ArtistName:[Linkin Park], MusicVideoRating:[TV-14], PlayId:[1367], AdGenres-b:value:[Rock - Alternative], MusicVideoProvider:[Warner Music Group], AssetId:[91744]] 

Je veux la carte comme résultat:

[AdGenres-b:key:[177, 184],SongTitle:[What I've Done], ArtistName:[Linkin Park], MusicVideoRating:[TV-14], PlayId:[1367], AdGenres-b:value:[Rock - Rock, Rock - Alternative], MusicVideoProvider:[Warner Music Group], AssetId:[91744] 

comment ACHIVE ci-dessus?

+0

Je viens de voir que vous avez une clé étrange. Vous ne devez pas utiliser une carte comme clé pour une autre carte, car les clés ne doivent pas être modifiables. –

Répondre

0

La manière simple: utiliser un Guava Multimap

Multimap<String, String> mmap = HashMultimap.create(); 
for(Map<String, String> map : Arrays.asList(map1,map2)){ 
    for(Entry<String, String> entry:map.entrySet()){ 
     mmap.put(entry.getKey(), entry.getValue()); 
    } 
} 
Questions connexes