Tipos de Vetores em Java

Olá pessoal do forum!

Tenho uma dúvida sobres os tipos de vetores do Java, na verdade não conheco muito bem as APIs que disponibilizam estes recursos e gostaria de pedir-lhes uma breve descrição relativa as funcionalidades e em quais situações é melhor utilizar um ou outro, sendo:

  • Arrays;
  • Collections;
  • Hash Tables
  • Lists;
  • String[];
  • Vector.

Se por exemplo eu precisasse replicar um ResultSet para um tipo de vetor qual destes teria que utilizar?

Ola Luciano,

Sua duvida na verdade não esta relacionada a linguagem porque esses são conceitos existentes na Computação … o Java facilita disponibilizando objetos implementando esses conceitos …

Arrays :arrow: Posições de memório em sequência, cada posição é acessada por um índice numérico. Muito rápido para armazenamento e acesso desde que a inserção seja sempre no fim e não seja necessário mudar o numero de elementos contidos frequentemente.
Hash Tables :arrow: Estrutura que armazena os dados baseado em um valor “único” (nem sempre é unico, caso seja duplicado ele gera uma lista naquela posição) que indica a posição de armazenamento, é rápido pra recuperar os objetos pois vai direto na posição do danado baseado no seu HashValue, a inserção tb não precisa manipular os outros elementos. Qd você tem um conjunto de dados/objetos que gerem hashvalues distintos é uma boa pedida, caso gerem muitas repetições sua performance e funcionalidade vai cair pacas.
Lists :arrow: usado para armazenar dados ligados por um apontamento entre eles, assim a memoria nao eh sequencial (como no array) e nao eh possivel acessar via indices. Ganha-se em operações de manipulação do meio da sequencia (insercao, remocao).
Vector :arrow: Um tipo especial de array com apenas uma linha
String[] :arrow: Um array de Strings :slight_smile:

Collections eu prefiro nao falar pq nao usaria os termos corretos … mas basicamente eh um array que pode ser acessado via chaves e nao indices.

Alguma besteira? To tentando externalizar o conhecimento uahahaha

Qt ao resultset … que tal usar um Disconnected Resultset ?!? (nem sei se da pra fazer em java, se der eh bem melhor se nao der eu usaria uma Collection)

Obrigado smota pela explicação… porém creio que devo detalhar melhor minha situação, é o seguinte:

Possuo 2 ResultSets, estou comparado os valores do rsA e rsB por meio de um loop dentro de outro.
Se algumas comparações entre campos dos rsA forem iguais a do rsB dentro deste “if” eu gostaria de alimentar um terceiro ResultSet ou um Vetor com os valores recuperados do meu rsA naquele passo.

É isso que não estou conseguindo fazer, poderiam me ajudar?
Obrigado.

aaa baum :stuck_out_tongue:

Veja este tópico.
Tem uma implementação baseada na classe Vector de um disconnected recordset (na verdade não é um recordset mas no seu caso deve dar conta do recado) …

Se quiser implementar um terceiro recordset (de verdade) use mesmo a classe RowSet

Isso é o que posso te ajudar … o primeiro link deve resolver a questão.

[]s