如何遍历Map的每个元素

Dear 丶 2024-04-17 05:46 187阅读 0赞

方法一:使用entrySet方法:
示例:

  1. public static void main(String[] args) {
  2. Map<String, String> param = new HashMap<>(8);
  3. param.put("1","A");
  4. param.put("2","B");
  5. param.put("3","C");
  6. param.put("4","D");
  7. param.put("5","E");
  8. for (Map.Entry<String, String> p : param.entrySet()) {
  9. System.out.println("[ key=" + p.getKey() + " , " + p.getValue() + " ]");
  10. }
  11. }

结果:
[ key=1 , A ]
[ key=2 , B ]
[ key=3 , C ]
[ key=4 , D ]
[ key=5 , E ]

方法二:使用Java8中map新增的方法forEach
示例:

  1. public static void main(String[] args) {
  2. Map<String, String> param = new HashMap<>(8);
  3. param.put("1","A");
  4. param.put("2","B");
  5. param.put("3","C");
  6. param.put("4","D");
  7. param.put("5","E");
  8. param.forEach((key,value) -> System.out.println("[ key=" + key + " , " + value + " ]"));
  9. }

结果:
[ key=1 , A ]
[ key=2 , B ]
[ key=3 , C ]
[ key=4 , D ]
[ key=5 , E ]
其实map新增的方法forEach底层实现与使用方法一的方法一致,源码解释:

  1. //map接口的默认方法,所有实现map的类都能调用
  2. default void forEach(BiConsumer<? super K, ? super V> action) {
  3. //检查是否为null
  4. Objects.requireNonNull(action);
  5. for (Map.Entry<K, V> entry : entrySet()) {
  6. K k;
  7. V v;
  8. try {
  9. //获取key-value
  10. k = entry.getKey();
  11. v = entry.getValue();
  12. } catch(IllegalStateException ise) {
  13. throw new ConcurrentModificationException(ise);
  14. }
  15. //执行
  16. action.accept(k, v);
  17. }
  18. }

发表评论

表情:
评论列表 (有 0 条评论,187人围观)

还没有评论,来说两句吧...

相关阅读