ArrayList e Vetor

Eu queria fazer um vetor dentro de um ArrayList sendo quem no Vetor eu colocava as Areas ( humanas, exatas, saúde etc…) e dentro do ArrayList queria colocar as subdivisões como

  • Humanas: Filosofia e Sociologia
  • Exatas: Matematica e Fisica
  • Saúde:Medicina e Odontologia

String[] array = new String[5];
ArrayList<String[]> vetor = new ArrayList<String[]>();
1 curtida

Tem outra estrutura e dentro dessa estrutura o ArrayList ?, exemplo

Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();

Outra solução:

import java.io.*;
{
	public static void main (String[] args) throws java.lang.Exception
	{
	    Map<String, String[]> map = new HashMap<String, String[]>();
	    map.put("Humanas", new String[] { "Filosofia", "Sociologia" } );
	    map.put("Exatas", new String[] { "Matematica", "Fisica" } );
	    map.put("Saúde", new String[] { "Medicina", "Odontologia" } );
	}
}

Um boa também com outras explicações: