1、使用静态代码块初始化
public class Test { private static final Map<Integer, String> myMap; static { Map<Integer, String> aMap = HashMap<Integer, String>(); aMap.put(1, "one"); aMap.put(2, "two"); myMap = Collections.unmodifiableMap(aMap); } }
2、使用static静态方法初始化
public class Test { private static final Map<Integer, String> MY_MAP = createMap(); private static Map<Integer, String> createMap() { Map<Integer, String> result = new HashMap<>(); result.put(1, "one"); result.put(2, "two"); return Collections.unmodifiableMap(result); } }
3、使用Map.ofEntries初始化(Java 9+)
文档:
import static java.util.Map.entry; private static final Map<Integer,String> map = Map.ofEntries( entry(1, "one"), entry(2, "two"), entry(3, "three"), entry(4, "four"), entry(5, "five"), entry(6, "six"), entry(7, "seven"), entry(8, "eight"), entry(9, "nine"), entry(10, "ten"));
4、使用Stream.of()和SimpleImmutableEntry初始化(Java 8+)
文档:
import java.util.AbstractMap.*; private static final Map<Integer, String> myMap = Stream.of( new SimpleEntry<>(1, "one"), new SimpleEntry<>(2, "two"), new SimpleEntry<>(3, "three"), new SimpleEntry<>(4, "four"), new SimpleEntry<>(5, "five"), new SimpleEntry<>(6, "six"), new SimpleEntry<>(7, "seven"), new SimpleEntry<>(8, "eight"), new SimpleEntry<>(9, "nine"), new SimpleEntry<>(10, "ten")) .collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue));
5、使用Map.of实现静态Map初始化(Java 9+)
private static final Map<Integer, String> MY_MAP = Map.of(1, "one", 2, "two");
相关文档:
java中 static final修饰Hashmap静态成员变量初始化方法
java使用Hashmap中的数据初始化Hashmap并执行put数据的简洁代码