Tipos de Vetores em Java

3 respostas
luciano_castilho

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?

3 Respostas

smota

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)

luciano_castilho

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.

smota

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

Criado 4 de abril de 2003
Ultima resposta 4 de abr. de 2003
Respostas 3
Participantes 2