How to populate static, predefined data in a Map/HashMap in Java

Java FAQ: How do I populate (initialize) a static HashMap in Java?

In Java 9 and newer you can create and populate a Map like this:

Map<String, String> peeps = Map.of(
    "Captain", "Kirk",
    "Mr.", "Spock"
);

This approach also works:

Map<> peeps = new HashMap<String, String>(Map.of(
    "Captain", "Kirk",
    "Mr.", "Spock"
));

Create and populate a Map prior to Java 9

If you need to initialize/populate a Map/HashMap in Java prior to Java 9 — such as when you’re writing Android code — the following source code shows the proper syntax:

/**
 * Off Tackle Run vs 3-4 Defense [Yardage Gained -> Probability]
 */
public static final Map<Integer, Float> RunOffTackle_34Defense = new HashMap<Integer, Float>() {{
    put(-99, 1f);  //1 fumble per 100 hand-offs
    put(-1,  4f);
    put( 0,  5f);
    put( 1,  9f);
    put( 2,  11f);
    put( 3,  15f);
    put( 4,  15f);
    put( 5,  11f);
    put( 6,  9f);
    put( 7,  5f);
    put( 8,  4f);
    put( 9,  3f);
    put(10,  3f);
    put(12,  2f);
    put(15,  2f);
    put(20,  1f);
}};

As you can see, this syntax lets me add static, predefined data to my Java Map/HashMap. I use this approach in a Java/Android football game that I’m currently writing. The important thing that this example shows is how to add data to a HashMap when you first create/define the HashMap (i.e., how to initialize it).