如何过滤TreeMap <MyKey,Map <Key2,List <Kids >>>,

问题描述

FundingRank和SourceBucket是枚举,但本质上是int

enum FundingRank {
    LESS_THAN_0(0),LESS_THAN_1(1),LESS_THAN_100(100);

    private final int rank;
    FundingRank(int i) {
        this.rank = i;
    }
}

enum ScoreBucket {
    MORE_THAN_1000(1000),MORE_THAN_500(1000),MORE_THAN_100(100),MORE_THAN_10(10);

    private final int bucket;
    ScoreBucket(int i) {
        this.bucket = i;
    }
}

我有一个TreeMap<FundingRank,TreeMap<scoreBucket,List<Kids>> >拥有类似的数据

fundingRank  scoreBucket List<Kids>
0              1000       List(with 1 elements) 
                500       List(with 2 elements)
                100       List(with 4 elements)
                 10       List(with 3 elements)
1             1000        List(with 4 elements)
                500       List(with 7 elements)
                100       List(with 4 elements)
                 10       List(with 3 elements)

现在,我想找到最小5个孩子的最小fundingRank和最大scoreBucket,如果不是,则找到最小fundingRank和最大scoreBucket

 myMap.entrySet().stream()
     .filter(e -> e.getvalue().entryset().stream()
         .filter(e2 ->e2.getvalue().size()).findfirst();


Output sorted map like this:

1 500  List(with 7 elements)
0 100  List(with 4 elements)
1 1000 List(with 4 elements)
1 100  List(with 4 elements)
0 10   List(with 3 elements)
...

因此,我正在尝试对TreeMap >进行排序,排序顺序定义为MinFunding等级和max ScoreBucket(阈值为5,如果存储桶中有5个孩子,则意味着有其他较小的水桶,有更多的孩子,则得分较高的桶获胜,或者如果有较大的FundingRank,桶的大小较大且有更多孩子,则如果满足5个孩子的阈值,则BucketBucket排仍会获胜),然后选择第一排 希望现在清楚了

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)