【问题标题】:How can I get the next key, from a specific key in a map?如何从地图中的特定键中获取下一个键?
【发布时间】:2016-01-29 05:31:13
【问题描述】:

我有类似的东西:

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

我希望能够说“我有键 07,从现在开始给我地图中的下一个键”,理想情况下会返回 08

有没有办法在不使用迭代器的情况下做到这一点?

【问题讨论】:

    标签: java dictionary key


    【解决方案1】:

    “我有 07 号钥匙,从这里给我地图中的下一个钥匙”,

    如果您不想更改Map 的定义,可以尝试类似

    List<Integer> keys = new ArrayList<Integer>(topology.keySet());
    Integer integer = keys.get((keys.indexOf(7))+1); // next key
    

    【讨论】:

      【解决方案2】:

      使用topology.ceilingKey(7) 获取下一个密钥。

      请注意,这是NavigableMap 接口的方法,因此您必须将TreeMap 实例存储在NavigableMap 变量中。

      NavigableMap<Integer, String> topology = new TreeMap<Integer, String>();
      

      【讨论】:

      • topology = a Map?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      • 2022-09-23
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 1970-01-01
      相关资源
      最近更新 更多