Java 映射操作

2018-02-20 02:32 更新

Java集合教程 - Java映射操作


映射迭代

要迭代地图的键,值或条目,使用映射的 keySet() values() entrySet它分别返回一组键,值集合和一组条目。

以下代码段显示了如何打印映射的所有键:

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Main {
  public static void main(String[] args) {
    Map<String, String> map = new HashMap<>();
    map.put("CSS", "style");
    map.put("HTML", "mark up");
    map.put("Oracle", "database");
    map.put("XML", "data");

    // Get  the   set of  keys
    Set<String> keys  = map.keySet();

    // Print all keys  using the   forEach()  method.
    keys.forEach(System.out::println);
  }
}

上面的代码生成以下结果。

映射条目

映射中的每个键值对都称为条目。条目由 Map.Entry<K,V> 接口的实例表示。

Map.Entry Map 接口的内部静态接口。

Map.Entry 有三个方法调用 getKey() getValue() setValue()它返回条目的键值,值,并分别在条目中设置新值。

Map的条目集上的典型迭代如下:

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Main {
  public static void main(String[] args) {
    Map<String, String> map = new HashMap<>();
    map.put("CSS", "style");
    map.put("HTML", "mark up");
    map.put("Oracle", "database");
    map.put("XML", "data");

    // Get the entry Set
    Set<Map.Entry<String, String>> entries = map.entrySet();

    entries.forEach((Map.Entry<String, String> entry) -> {
      String key = entry.getKey();
      String value = entry.getValue();
      System.out.println("key=" + key + ",  value=" + value);
    });

  }
}

上面的代码生成以下结果。

映射条目迭代

forEach(BiConsumer<?super K,?super V> action) Map 界面遍历映射中的所有条目。

该方法需要一个 BiConsumer 实例第一个参数是键,第二个参数是值用于映射中的当前条目。

import java.util.HashMap;
import java.util.Map;

public class Main {
  public static void main(String[] args) {
    Map<String, String> map = new HashMap<>();
    map.put("CSS", "style");
    map.put("HTML", "mark up");
    map.put("Oracle", "database");
    map.put("XML", "data");

    map.forEach((String key, String value) -> {
      System.out.println("key=" + key + ",  value=" + value);
    });

  }
}

上面的代码生成以下结果。

映射视图

以下代码演示了如何获取Map的三个不同视图迭代这些视图中的元素。

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Main {
  public static void main(String[] args) {
    Map<String, String> map = new HashMap<>();
    map.put("CSS", "style");
    map.put("HTML", "mark up");
    map.put("Oracle", "database");
    map.put("XML", "data");

    System.out.println("Map: " + map.toString());

    listValues(map);
    listEntries(map);
  }

  public static void listKeys(Map<String, String> map) {
    System.out.println("Key Set:");
    Set<String> keys = map.keySet();
    keys.forEach(System.out::println);
    System.out.println();
  }

  public static void listValues(Map<String, String> map) {
    System.out.println("Values Collection:");
    Collection<String> values = map.values();
    values.forEach(System.out::println);
    System.out.println();
  }

  public static void listEntries(Map<String, String> map) {
    System.out.println("Entry Set:");

    // Get the entry Set
    Set<Map.Entry<String, String>> entries = map.entrySet();
    entries.forEach((Map.Entry<String, String> entry) -> {
      String key = entry.getKey();
      String value = entry.getValue();
      System.out.println("key=" + key + ",  value=" + value);
    });
  }
}

上面的代码生成以下结果。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号