Qual o Melhor?

Estou desenvolvendo uma simples classe em java, que carrega uma lista de nomes as vezes de ate 10MB, e filtra oque tiver entre os parenteses.
Qual a melhor forma de fazer ?
Primeira Opção: Utilizando um ArrayList, carregando a lista no Array e depois percorre e filtra os “( )”.

		ArrayList<String> lista = new ArrayList<String>();
		BufferedReader bufferedreader = new BufferedReader(new FileReader(args[0]));
		for(String s1 = bufferedreader.readLine(); s1 != null; s1 = bufferedreader.readLine()) {
			lista.add(s1);
		}

Segunda Opção: Sem utilizar Array, Lendo do arquivo direto e salvano em outro arquivo

   String s2 = "";
   BufferedReader bufferedreader = new BufferedReader(new FileReader(args[0]));
   PrintWriter matriculas = new PrintWriter(new FileWriter(nomeArquivo, true));
   for(String s1 = bufferedreader.readLine(); s1 != null; s1 = bufferedreader.readLine()) {
	  s2 = s1.substring(s1.indexOf("(")+1, s1.lastIndexof(")")+1);
	  matriculas.println(s2);
   }
   matriculas.close();

Acredito que sem utilizar Array possa ficar mais rapido. Oq vcs acham ?

Bom, se você usa o conteúdo apenas para filtrar e salvar em outro arquivo, eu aconselho usar sem List pelo fato do desempenho ser melhor. Não é necessário vc carregar uma lista e depois percorrer ela.