Java 中如何使用 lambda 表达式填充 Map?

Map是一个集合对象,它将键映射到Java中的值。 数据可以存储在键/值对中,并且每个键都是唯一的。 这些键/值对也称为映射条目。

在下面的示例中,我们可以使用lambda表达式填充映射。我们已经将字符和可运行参数传递给Map对象,并将lambda表达式作为Map类的put()方法中的第二个参数传递。我们需要传递命令行参数,用户是否在Scanner类的帮助下输入“h”表示帮助,输入“q”表示退出。

示例

import java.util.*;

public class PopulateUsingMapLambdaTest {
   public static void main(String[] args) {
      Map<Character, Runnable> map = new HashMap<>();

      map.put('h', () -> System.out.println("Type h or q"));   // lambda 表达式
      map.put('q', () -> System.exit(0));    // lambda 表达式

      while(true) {
         System.out.println("Menu");
         System.out.println("h) Help");
         System.out.println("q) Quit");

         char key = new Scanner(System.in).nextLine().charAt(0);

         if(map.containsKey(key))
            map.get(key).run();
      }
   }
}

输出结果

Menu
h) Help
q) Quit
Type h or q :
q