Classe "Vector"

Olá…Gostaria q me ajudassem quanto a manipulação de objetos do tipo “Vector”.

  • como funciona a inserção???
  • tem como eu pegar a ultima posição pra pode inserir no final do vetor???

Falow…t+++

Use ArrayList que é melhor. Alguns exemplos:

Para criar:

ArrayList<String> nomes = new ArrayList<String>();

Para adicionar um elemento:

nomes.add("Diego");

Para verificar se existe um elemento:

int index = nomes.indexOf("Diego");

Dá uma olhada aqui…

T+

Oi, para você já não começar errado, não use o Vector, use ArrayList. O Vector é uma classe antiga, anterior a Collections Framework e hoje não há mais motivos para usa-la. Se só isso não basta para te convencer, leia esse tópico.
http://www.guj.com.br/posts/list/71926.java#378301

Pois bem, voltando a sua questão. Como se usa um list?

O primeiro passo é criar um objeto de list. O java te fornece 2 objetos o ArrayList e o LinkedList.

A diferença dos dois é que o ArrayList baseia num array convencional, portanto, é fácil acessar qualquer elemento e inserir objetos no final do array. Por outro lado, é mais custoso inserir elementos no meio do array, pois alguns elementos terão de ser deslocados. O ArrayList é o substituto direto do Vector.

Já o LinkedList é uma lista duplamente encadeada. Isso quer dizer que é fácil inserir objetos em qualquer ponto da lista, mas é muito complicado acessar uma posição específica (o java terá que percorrer a lista toda até chegar lá).

Para criar a lista que você quiser, faça:

List<TipoDoDado> umaLista = new ArrayList<TipoDoDado>();

Por exemplo, se quiser criar uma lista de inteiros:

List<Integer> umaLista = new ArrayList<Integer>();

Note que listas só trabalham com objetos.

Depois, o programa abaixo mostra algumas das coisas comuns que fazemos com listas:

[code]import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class ExemploLista {
public static void main(String[] args) {
//Primeiro criamos um ArrayList.
List umaLista = new ArrayList();

    //Para adicionar elementos ao final da lista, usamos o método add
    umaLista.add("Vinícius");
    umaLista.add("De");
    umaLista.add("Mendonça");
    imprime("Após adicionar os primeiros elementos", umaLista);

    //Também podemos adicionar um elemento numa posição qualquer da lista
    umaLista.add(1, "Godoy");
    imprime("Após adicionar Godoy na posição 1", umaLista);

    umaLista.add("Garcia");
    umaLista.add("Menezes");
    imprime("Após adicionar Garcia e Menezes na lista", umaLista);

    //Podemos obter o tamanho da lista chamando o método size()
    System.out.println("O tamanho da lista é: " + umaLista.size());
    
    //Podemos acessar um elemento da lista usando get. Note que o índice das
    //listas começa em 0.
    System.out.println("O 4º elemento da lista, de índice 3 é: " + umaLista.get(3));
    
    //Podemos ver se existe um determinado valor na lista
    if (umaLista.contains("Godoy"))
        System.out.println("Godoy está lá!");
    else
        System.out.println("Godoy não está lá!");
    
    if (umaLista.contains("Braga"))
        System.out.println("Braga está lá!");
    else
        System.out.println("Braga não está lá!");
    
    //Podemos descobrir qual é o índice de um elemento da lista
    int indiceDe = umaLista.indexOf("De");
    System.out.println("O índice de 'De' é:" + indiceDe);

    //Dá também para remover um elemento da lista com remove
    umaLista.remove("Garcia");
    imprime("Removemos Garcia", umaLista);

    //Remove também aceita um índice!
    umaLista.remove(umaLista.size()-1); //Remover o último elemento
    imprime("Removemos a lista na posição " + (umaLista.size()) + ": ", umaLista);

    //Podemos ordenar a lista, desde que a classe dentro dela seja Comparable:
    Collections.sort(umaLista);
    imprime("Lista ordenada", umaLista);

    //É possível criar cópias da lista em praticamente qualquer estrutura:
    List<String> outraLista = new LinkedList<String>(umaLista); 
    imprime("Impressão da outra lista", umaLista);
    outraLista = null;

    //Podemos também remover todos os elementos da lista
    umaLista.clear();

    //Podemos criar uma versão imodificável da lista
    outraLista = Collections.unmodifiableList(umaLista); //Não é uma cópia!
    try {
       outraLista.add("Menezes de Barros");
    } catch (UnsupportedOperationException e) {
       System.out.println("Ops... não dá para inserir!");
    }
    
    //Podemos transformar um arrayQualquer numa lista
    String[] frutas = new String[] {"Banana", "Maçã", "Banana", "Laranja", "Banana"};
    List<String> listaFrutas = Arrays.asList(frutas);
    imprime("Lista de frutas", listaFrutas);
    
    //E podemos adicionar uma lista inteira dentro de outra
    umaLista.add("Pera");
    umaLista.add("Goiaba");
    umaLista.addAll(listaFrutas);
    
    imprime("Lista de frutas com frutas de umaLista", umaLista);
    
    //Há também métodos para remover todos os que forem iguais(removeAll), 
    //manter todos os que forem iguais (retainAll)
    //ou ver se todos os elementos de uma lista estão em outra (containsAll)
    umaLista.retainAll(listaFrutas); //Mantém só as frutas que estiverem em listaFrutas
    imprime("Lista após a remoção", umaLista);
    
    //Você também pode usar o iterador para remover um elemento enquanto 
    //percorre a lista. Por exemplo, vamos remover as bananas:        
    Iterator<String> it = umaLista.iterator();
    while (it.hasNext()) //Enquanto temos elementos da lista
    {
        String fruta = it.next(); //Obtemos o próximo elemento
        if (fruta.equals("Banana")) //Estamos na banana?
            it.remove();            //Removemos!
    }
    imprime("Uma lista sem bananas", umaLista);        
}

//Podemos percorrer todos os elementos de qualquer coleção (inclusive List), usando o for each.
public static void imprime(String titulo, Collection collection) {
System.out.println();
System.out.println(titulo + “:”);
for (String str : collection) {
System.out.println(str);
}
System.out.println();
}
}[/code]

É possivel adicionar um elemento (Nodo) com mais de um tipo de dado em um arraylist da mesma forma que acontece com a LinkedList?

LinkedList e ArrayList seguem a mesma interface, List. Portanto, é possível realizar as mesmas operações nas duas listas.

Bom exemplo.
vlw.

Otimo exemplo, me exclareceu muito :smiley:

Olá!!

Boa Tarde!!!

pessoal, estou com dificuldade para fazer uma ordenação utilizando o buble sort, e quero ordena um rol, esse é o enunciado do projeto: Projeto interdisciplinar
SI081U
1o. semestre 2009
Elaborar um programa para :
A) entrar com os dados brutos discretos
B) construir um rol crescente dos mesmos estabelecendo sua amplitude
C) construir uma tabela com a distribuicao de frequencia absolutas dos mesmos
D) construir uma tabela com a distribuicao de frequencia acumuladas dos mesmos
E) construir uma tabela com a distribuicao de frequencias relativas dos mesmos

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

import java.util.Random;
public class Rol {
private int[] array;

public Rol(int tam){
    array = new int[tam];
}

public void GeraRol(){
    Random n=new Random();
    for (int i=0;i<array.length;i++){
        array[i]=n.nextInt(100);
    }            
}

public void OrdenaRol(){
    
    for (int i=0; i<array.length;i++){
        for (int j=0; j<array.length; j--){
            
           
            
            
        }
            
       
     
        
    }
  
    
    
   
}

public int[] retornaRol(){
    return array;
}

}

se alguém pode me ajudar agradeço desde já…
obrigada.

Ou janete. Quando for postar código, por favor, use a tag code:

Seu código aqui

E evite pegar carona no tópico dos outros, a menos que sua dúvida seja diretamente relacionada ao assunto em questão.
Abra um tópico novo para essa dúvida, que você provelmente será atendida mais rapidamente.

toda API do java deveria ter uma postagem como essa do Viinny mmuito melhor do que 20 paginas falando sobre ela… é uma postagem apenas como essa dele… parabens

Valeu.

Parabéns Vini, bem explicativo e resumido!

Att.

Galera, eu tenho um trabalho de java para fazer que exige a utilização da classe Vector, e eu não estou conseguindo fazer tudo. Preciso de ajuda para completar o trabalho.

No trabalho, eu tenho que implementar uma classe Aluno, que possui duas String, nome e cpf, e um atributo notas do tipo Vector; e uma classe Sala, que possui um atributo alunos do tipo Vector. Meu problema está na hora de inserir o aluno na classe Sala, pois o método recebe como parâmetro um aluno, ou seja, tudo o que está na classe Aluno, e para realizar a soma de todas as notas de todos os alunos.

Enfim, se alguém tiver entendido meu problema e souber como me ajudar, eu agradeço. Qualquer coisa referente à classe Vector já ajuda bastante.
Desde já agradeço.

A dica é: não use Vector. Use ArrayList. Não gastei um tempão aquele post ali em cima se fosse recomendar o contrário.

Sua classe Aluno vai ficar mais ou menos assim:

public class Aluno { private String nome; private String cpf; private List<Double> notas = new ArrayList<Double>(); }

Falta daí criar métodos de acesso e o resto do trabalho. Se você realmente precisar usar Vector, converse com o seu professor e fale para ele que ele está desatualizado, e que essa classe não é mais recomendada desde o Java 1.2. Se precisar posso te dar referências bibliográficas que comprovam o que digo.

Ainda assim, se seu professor bater o pé, basta trocar a declaração por:

   private List<Double> notas = new Vector<Double>();

O resto, aquele exemplo que dei ali em cima mostra como usar qualquer List, inclusive o Vector.

Vini, valeu mesmo, vou tentar aqui desse jeito, qualquer coisa uso o ArrayList e entrego assim mesmo.
Obrigado.

Cara criei login e senha só pra agradecer o exemplo. Não tinha entendido muito bem esse lance de arrayList, mas depois desse exemplo ficou mais fácil de associar na hora que eu for implementar em um exercício qualquer. Valeu mesmo :smiley:

Cara Tu é o pai!! kkkkk estava precisando disso mesmo valeu nao sabe como me ajudou…

Bom tópico…

eu to com um problema…

para não ficar respondendo aqui, tem um tópico já criado sobre list… alguem pode me ajudar??