¡Hola! Un arrayList puede contener otros arrayList, lo que le convierte en una Matriz. Un ejemplo sería:
ArrayList<ArrayList<Integer>> miMatriz = new ArrayList<ArrayList<Integer>>();
Entonces para añadir un ArrayList a otro puedes hacer:
ArrayList<Integer> filaDeLaMatriz = new ArrayList<Integer>();
filaDeLaMatriz.add(123);
filaDeLaMatriz.add(456);
filaDeLaMatriz.add(789);
miMatriz.add(filaDeLaMatriz);
Luego solo te queda realizar las búsquedas y las comparaciones.