Puedes hacerlo de la siguiente forma:
Hashtable<Integer, ArrayList<String>> x = new Hashtable<Integer, ArrayList<String>>();
Set<Integer> claves = x.keySet();
for (Integer clave : claves) {
ArrayList<String> array = x.get(clave);
for (String string : array) {
//Operacion con el elemento del arrayList
}
}
Es decir, llamas al método keySet() de la clase Hashtable, que te devuelve el conjunto de claves que hay almacenado en él.
Con el primer bucle recorres el conjunto (es un bucle for each, búscalo en internet si nunca lo habías visto antes). Llamas al método get() que recupera el valor asociado a la clave que se le pasa como parámetro, y con el siguiente bucle recorres el ArrayList (también es un bucle for each).
Los bucles esos que he puesto la "nomenclatura" que tienen es: for (TipoDeDato variableQueAlmacenaValor : VariableQueQueremosRecorrer).
Espero que te sirva.
Saludos.