[Dúvida] Este código terá uma boa performance?

Olá, pessoal do GUJ!

Bom, estava eu em meus estudos, quando me deparei com uma dúvida…

Digamos que tenho um projeto no qual apliquei a arquitetura MVC.

Tenho uma classe Service, a qual comunica com os Pojos, e comunica também com uma classe Action qualquer.
Daí eu faço uma consulta no banco, retornando List, mas quero passá-la via Map pra camada superior, sem que o Action enxergue o Pojo.

Bom, sem mais enrolações, vai o código aí:

public Map<String, Object> readByExample(Map<String, Object> input) throws Exception {

   Pessoa pessoa = new Pessoa();
   pessoa.setId(new Long(input.get("id")));
   pessoa.setNome(input.get("nome"));
   //...

   List<Pessoa> pessoas = PessoaDAO.getInstance().readByExample(pessoa);   
 
   List<Long> ids = new ArrayList<Long>();
   List<String> nomes = new ArrayList<String>();

   for (Pessoa p : pessoas) {

      ids.add(p.getId());
      nomes.add(p.getNome());
      //...
   }

   Map<String, Object> output = new TreeMap<String, Object>();
   output.put("ids", ids);
   output.put("nomes", nomes);

   return output;
}

O que vocês acham? Tem uma boa performance? Alguma sugestão para melhorá-lo?

Abraço a todos!

Sim, passe o objeto mesmo para a camada superior.

Da forma que está você:
a) Perdeu performance, fazendo uma computação desnecessária;
b) Perdeu tipagem, já que perde totalmente a relação entre o id e o nome referem-se a tipo único;
c) Perdeu segurança, já que a classe de cima terá que fazer casts.