java - 使用 lambdaj (java) 在 HashMap<String,Double> 中查找具有最高值的键

标签 java lambdaj

我尝试使用 lambdaj 在 HashMap < String,Double > 中查找具有最高值的查找键。 我想 selectMax() 会有帮助,但我不知道在这种情况下如何使用它。

最佳答案

我已经下载了 lambdaj 并尝试了一下。给你吧

import static ch.lambdaj.Lambda.having;
import static ch.lambdaj.Lambda.max;
import static ch.lambdaj.Lambda.on;
import static ch.lambdaj.Lambda.select;
import static org.hamcrest.Matchers.equalTo;

import java.util.HashMap;
import java.util.Map;


public class LambdaJtester {

    public static void main(String[] args) {
        final HashMap < String,Double >  mapp = new HashMap<String, Double>();
        mapp.put("s3.5", 3.5);
        mapp.put("s1.5", 1.5);
        mapp.put("s0.5", 0.5);
        mapp.put("s0.6", 0.6);
        mapp.put("2s3.5", 3.5);
        mapp.put("s2.6", 2.6);
        System.out.println(
                select(mapp.entrySet(), having(on(Map.Entry.class).getValue(), 
                        equalTo(max(mapp, on(Double.class)))))
        );
    }
}

打印出[2s3.5=3.5, s3.5=3.5]

关于java - 使用 lambdaj (java) 在 HashMap<String,Double> 中查找具有最高值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234598/

相关文章:

java - 树状图放置似乎正在删除条目

java - 如何订阅 MQTT 主题并在 Eclipse (Java) 上打印收到的消息

java - 将对集合中的元素运行方法的所有结果添加到另一个集合

java - Hamcrest - arrayOne 中的任何项目与 arrayTwo 中的任何项目匹配

java - LambdaJ forEach 集合

java - String.getBytes ("UTF-16") 会在所有平台上返回相同的结果吗?

java - 将 Curl 转换为 Java 等价物

java - org.hamcrest.Matchers 用于同时匹配对象的不同属性

java - 我可以将 arg 传递给自定义 Lambdaj 谓词吗?

java - 你如何从游标中获取类型?