📅  最后修改于: 2023-12-03 14:42:19.471000             🧑  作者: Mango
在Java中,我们可以使用一行代码来初始化一个映射(Map),也被称为关联数组或字典。映射是一种键值对的集合,其中每个键都是唯一的,并且与一个值相关联。
以下是几种初始化映射的方式和示例代码:
import java.util.*;
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>() {{
put("A", 1);
put("B", 2);
put("C", 3);
}};
System.out.println(map);
}
}
这个方式使用了双括号初始化,双括号初始化在Java中被称为匿名内部类的语法糖。这种方式将使用大括号创建一个匿名内部类,并在内部类中使用put
方法来添加键值对。
运行以上代码,输出结果为:
{A=1, B=2, C=3}
Map.of
方法Java 9引入了一个新的静态方法of
,用于在一行代码中创建一个不可变的映射。
import java.util.*;
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = Map.of("A", 1, "B", 2, "C", 3);
System.out.println(map);
}
}
这种方式更加简洁,但是注意这个方法只能创建不可变的映射。运行以上代码,输出结果为:
{A=1, B=2, C=3}
java.util.stream.Collectors
类Java 8引入了Stream API,我们可以使用Stream和Collectors类创建映射。
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = Arrays.stream(new Object[][]{
{"A", 1},
{"B", 2},
{"C", 3}
}).collect(Collectors.toMap(data -> (String) data[0], data -> (Integer) data[1]));
System.out.println(map);
}
}
这个例子将一个二维对象数组转换为Stream流,然后使用Collectors.toMap
方法将流中的元素转换为映射。
运行以上代码,输出结果为:
{A=1, B=2, C=3}
这是几种在Java中用一行代码初始化映射的方式。根据你的需求,选择适合的方式进行映射的初始化。