eu quando crio um JTable os objetos dentro dela são serializados, pois eles por default são inserido em um vector, porém objetos serializados são muito caros em termo de implementação. Então não queria que ele usasse vector.
eu gostaria que o JTable ao invéz de inserir em um vector, inserisse em um List.
Não entendi exatamente o que você quis dizer com “os objetos dentro dela são serializados”. Você não quis dizer sincronizados?
O DefaultTableModel usa um Vector. Você pode implementar o seu próprio TableModel. Para isso, basta criar uma classe filha de AbstractTableModel.
Criar um TableModel com uma list é realmente simples, especialmente porque você não precisa usar um List de Lists, mas um List da própria classe que você está exibindo.
Se você está tendo problemas de performance, eu também recomendo que você rode sua aplicação utilizando um profiler e tente achar os gargalos e corrigi-los. Dificilmente os problemas de performance estão onde achamos que eles estão, e dificilmente o problema se resolve mudando de Vector para List. A sincronização adiciona uma demora sim, mas ela é pequena e só se tornaria um problema numa tabela realmente gigantesca.
O profile te auxilia medindo o tempo gasto em cada método de sua aplicação e mostrando onde os métodos que realmente impactam na execução estão localizados. É sempre preferível otimizar SOMENTE esses métodos, mantendo os demais trechos de código claros.
Se informe sobre os profilers! O Eclipse tem um no projeto TPTP:
O Netbeans também tem outro. E você pode sempre baixar o EJP, que é independente de IDE. http://ejp.sourceforge.net/
Se você quiser um TableModel que receba um List, sugiro dar uma olhada no SwingBean. A classe BeanTableModel permite que você insira listas de objetos e configure as colunas através dos nomes das propriedades em um arquivo XML. É muito fácil!!