java – Best data Structure for storing a phone keypad format

I am new to java collections and learning them right now. I was trying to code the phone keypad characters with its numbers. The first idea which came to my mind is using a HashMap. After trying various options I came up with the below Code. I want to know if the data structure and methodology which I implemented is good or does it need some more improvements.

Things which I know and don’t want to implement:

  1. I do not want to hardcode the keypad. I know that there are various ways of implementing a hardcoded keypad. I visited this and this link to learn about other ways.
  2. I would really be thankful if the solution is given in java 7 syntax. I don’t have much idea about java 8 syntax, but I’ll be helpful to know the solution in that too, if possible.

Keypad feature according to my problem statement:

  1. 0 and 1 buttons are not functional.
  2. 7 and 9 buttons contain 4 letters each and others contain 3 letters each.
public static void keypadDemo(){
        int ax = 97; // I need to store lower-case letters so took this
        Map<Integer, ArrayList<Character>> hm = new HashMap<>(); // This is my data-structure
        for(int i = 0; i < 10; i++){
            if(i == 0 || i == 1){
                hm.put(i, null); // 0 and 1 keys are not functional as per my problem statement.
            }else if(i == 7 || i == 9){
                hm.put(i, new ArrayList<>(Arrays.asList((char) ax, (char) ++ax, (char) ++ax, (char) ++ax)));
                ax++;
            }else{
                hm.put(i, new ArrayList<>(Arrays.asList((char) ax, (char) ++ax, (char) ++ax)));
                ax++;
            }
        }
       System.out.println(hm);
    }

Any help will be welcomed. Thanks