我尝试使用lambdaj在HashMap 中找到具有最高值的查找键。
我想选择Max()会有所帮助,但在这种情况下我不知道如何使用它。

最佳答案

我已经下载了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]

10-06 09:25