如何在Java TreeMap中选择前N个项目?
发布时间:2020-12-14 16:43:13 所属栏目:Java 来源:网络整理
导读:给定这张地图 SortedMapInteger,String myMap = new TreeMapInteger,String(); 而不是for循环是否有一个效用函数将前N个项目复制到目标地图? 解决方法 也许,但不是标准Java API的一部分.并且:该实用程序将使用一个循环. 所以你需要一个循环,但是你可以通过
给定这张地图
SortedMap<Integer,String> myMap = new TreeMap<Integer,String>(); 而不是for循环是否有一个效用函数将前N个项目复制到目标地图? 解决方法
也许,但不是标准Java API的一部分.并且:该实用程序将使用一个循环.
所以你需要一个循环,但是你可以通过在一个实用程序类中的一个静态方法中创建自己的“实用程序”: public static SortedMap<K,V> putFirstEntries(int max,SortedMap<K,V> source) { int count = 0; TreeMap<K,V> target = new TreeMap<K,V>(); for (Map.Entry<K,V> entry:source.entrySet()) { if (count >= max) break; target.put(entry.getKey(),entry.getValue()); count++; } return target; } 复杂度仍然是O(n)(我怀疑,可以实现O(1)),但是您可以像工具那样使用它,而不会看到循环: SortedMap<Integer,String> firstFive = Util.putFirstEntries(5,sourceMap); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |