我有类似的东西:
Map<Integer, String> topology = new TreeMap<Integer, String>();
其中包含例如:
01, my.vm.01.serv.com
04, my.vm.04.serv.com
07, my.vm.07.serv.com
08, my.vm.08.serv.com
09, my.vm.09.serv.com
我希望能够说'#34;我有密钥07
,从这一点开始,让我获得地图中的下一个键&#34;,理想情况下返回{{1} }。
有没有办法在不使用迭代器的情况下执行此操作?
答案 0 :(得分:4)
&#34;我有07键,从这一点开始,给我一张地图中的下一个键&#34;,
如果您不想更改Map
的定义,可以尝试类似
List<Integer> keys = new ArrayList<Integer>(topology.keySet());
Integer integer = keys.get((keys.indexOf(7))+1); // next key
答案 1 :(得分:3)
使用topology.ceilingKey(7)
获取下一个密钥。
请注意,这是NavigableMap
界面的一种方法,因此您必须将TreeMap
个实例存储在NavigableMap
变量中。
NavigableMap<Integer, String> topology = new TreeMap<Integer, String>();