簡體   English   中英

如果 Map 包含 Map 的鍵(此處為子字符串),則按值查找最小鍵<String, Double>

[英]Find Min Key by Value if Map contains key(SubString here ) for Map<String, Double>

我有一個以字符串作為鍵和值的 HashMap。 我有一個字符串。 現在我想做這樣的事情:

例子

Map<String, Double> storeDistance = new HashMap<String, Double>();
map.put("10-ABCD-01", 15.75);
map.put("10-XYZ-05", 12.13);
map.put("10-ABCD-06", 11.06);
map.put("10-ABCD-04", 10.76);
map.put("10-XYZ-03", 07.62);

現在我想找到距離最小的商店 ABCD。 在這種情況下,我想將存儲值作為“10-ABCD-04”,因為它與所有帶有子字符串 ABCD 的鍵的距離最小。

我正在嘗試類似下面的東西,但它不起作用。 所以這里有任何建議。

storeDistance.keySet().stream()
                           .filter(key -> key.contains("ABCD")).map(storeDistance::get).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, Math::min));

        
            

在密鑰集的流上使用min(Comparator)來獲取可選密鑰

String result = storeDistance.keySet().stream().filter(key -> key.contains("ABCD"))
       .min(Comparator.comparingDouble(storeDistance::get)).get();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM