CODE
 ArrayList<String> tokens = new ArrayList<String>();
    ArrayList<String> PRINT = new ArrayList<String>();
    String tok = "";
    for(String element : list) {
        StringTokenizer st = new StringTokenizer(element);
        if(!element.startsWith("PRINT")) {
            while(st.hasMoreTokens()) {
                tok = st.nextToken();
                tokens.add(tok);
                for(String key : expression.keySet())
                    if(tok.equals(key))
                        System.out.println(tokens.get(0) + " changed from " + expression.get(key) + " to " + Integer.parseInt(tokens.get(2)));
            }
            expression.put(tokens.get(0),Integer.parseInt(tokens.get(2)));
            tokens.clear();
        }
I am getting an array out of bounds exception at below line
System.out.println(tokens.get(0) + " changed from " + expression.get(key) + " to " + Integer.parseInt(tokens.get(2))
I know that tokens.get(0) = "A", tokens.get(1) = "=" and tokens.get(2) = "7"
 
     
    