【问题标题】:Replace map for-each by classic for-loop?用经典的for循环替换map for-each?
【发布时间】:2022-01-23 17:20:03
【问题描述】:

Java 8

这里有一些sn-p:

String createSelector(Map.Entry<String, Map<String, String>> seriesMapEntry) {
   for (Map.Entry<String,String> column : seriesMapEntry.getValue().entrySet()) {
        String expr = column.getValue();
         // some code here
   }
}

很好。它工作正常。

是否可以在没有for-each 循环的情况下迭代 seriesMapEntry?例如,使用经典的 for 循环(按索引迭代)。

【问题讨论】:

    标签: java


    【解决方案1】:

    本例中的经典 for 循环没有“按索引”进行迭代(因为 Map 或 Set 中没有索引),而是使用了迭代器:

    for (Iterator<Map.Entry<String, String>> iter = seriesMapEntry.getValue().entrySet().iterator(); iter.hasNext();) {
        Map.Entry<String,String> column = iter.next();
        // some code here
    }
    

    【讨论】:

      【解决方案2】:

      没有可迭代的索引。但是,您可以使用显式 Iterator 和 while 循环:

      String createSelector(Map.Entry<String, Map<String, String>> seriesMapEntry) {
         Iterator<Map.Entry<String,String>> iter = seriesMapEntry.getValue().entrySet().iterator();
         while (iter.hasNext ()) {
              Map.Entry<String,String> column = iter.next ();
              String expr = column.getValue();
               // some code here
         }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-08
        • 2015-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-20
        • 1970-01-01
        相关资源
        最近更新 更多