我有一個Item對象的LinkedHashMap。 Item有itemId和Color。我想對地圖數據進行排序和分組,根據插入順序對地圖進行排序,並對顏色進行分組。按值分組/排序地圖<key, value >(Java)
讓我與例如
Map<String, ItemVO> itemChildMap = new LinkedHashMap<String, ItemVO>();
ItemVO item1 = new ItemVO("98091", "Red");
ItemVO item2 = new ItemVO("32456", "Black");
ItemVO item3 = new ItemVO("12323", "Green");
ItemVO item4 = new ItemVO("78956", "Red");
ItemVO item5 = new ItemVO("11231", "Green");
ItemVO item6 = new ItemVO("10098", "Black");
ItemVO item7 = new ItemVO("23410", "Red");
itemChildMap.put("98091", item1);
itemChildMap.put("32456", item2);
itemChildMap.put("12323", item3);
itemChildMap.put("78956", item4);
itemChildMap.put("11231", item5);
itemChildMap.put("10098", item6);
itemChildMap.put("23410", item7);
演示排序和分組邏輯後,地圖應當如下:
{98091=ItemVO [itemId='98091', color='Red']
, 78956=ItemVO [itemId='78956', color='Red']
, 23410=ItemVO [itemId='23410', color='Red']
, 32456=ItemVO [itemId='32456', color='Black']
, 10098=ItemVO [itemId='10098', color='Black']
, 12323=ItemVO [itemId='12323', color='Green']
, 11231=ItemVO [itemId='11231', color='Green']
}
基本上,地圖應當首先包含具有紅顏色的所有項目的對象(其有先插入),然後是具有黑色的項目對象,以及具有綠色的最後一個項目對象。
我曾經需要同樣的事情。這有助於:[https://stackoverflow.com/a/2581754/7399631](https://stackoverflow.com/a/2581754/7399631) – mumpitz
[按值排序圖(Java)](https ://stackoverflow.com/questions/109383/sort-a-mapkey-value-by-values-java) –
你想在分組後繼續維持插入順序嗎? –