给定这张地图
SortedMap<Integer,String> myMap = new TreeMap<Integer,String>();
解决方法
也许,但不是标准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);
原文地址:https://www.jb51.cc/java/124559.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。