Matriz usando ArrayList. Como acessar coluna a coluna contando as ocorrencias dos elementos por colu

Olá Pessoal. Gostaria da ajuda de vocês para o seguinte problema: Tenho 3 matrizes.
Exemplo:
Matriz 1:
a1 b1
a2 b2
a1 b2
a2 b1

Matriz 2:
a1 b2
a2 b2
a2 b1
a2 b1

Matriz 3:Concatenação das colunas nas suas respectivas posições

a1a1 b1b2
a2a2 b2b2
a1a2 b2b1
a2a2 b1b1

Preciso contas as o ocorrencias de cada elemento na coluna da 3ª matriz. Sendo que no caso do exemplo acima eu retornaria:
a1a1=1
a2a2=2
a1a2=1
E o mesmo para a seguda coluna.

Estou usando uma lista de ArrayList, a matriz será de tamanho dinamica.

Estou com problemas na hora de acessar as colunas, só consigo acessar linha a linha. Alguém pode me ajudar?