Organizar Vector

3 respostas
S

Galera gostaria de uma dica rapida e simples para ordernar um Vector, ele não é um Vector simples, seria algo assim.

Possuo uma lista em texto de produtos onde os campos é o codigo do produto e seu nome.

1528|PRODUTO1|#
5289|PRODUTO2|#
8969|PRODUTO3|#
8596|PRODUTO4|#

para jogar esta informação dentro de um Vector fiz da seguinte forma.

Vector linha = new Vector();
        Vector coluna = new Vector();
        StringBuffer aux = new StringBuffer();
        int tam = dados.length();
        for (int pos = 0; pos < tam; pos++) {
            if (dados.charAt(pos) != '|' || dados.charAt(pos) != '#') {
                aux.append(dados.charAt(pos));
            } else {
                if (dados.charAt(pos) == '|') {
                    coluna.add(aux.tostring());
                    aux = new StringBuffer();
                } else {
                    linha.add(coluna);
                    coluna = new Vector();
                    aux = new StringBuffer();
                }
            }
        }

Desta forma meu vector linha é na verdade um vector de vector e dentro de cada linha possuo um vector com 2 colunas.
se quero pegar o valor da posiçao linha=3 e coluna =1 só pegar com o comando ((Vector)linha.elementAt(3)).elementAt(1).tostring()

minha duvida como posso organizar este vector tanto pelo codigo do cliente quanto pelo nome do produto?

Valeu!!

3 Respostas

Marky.Vasconcelos

Primeiro
Não use Vector! Use List!

Segundo
Não seria mais fácil no lugar de usar um vetor de vetores usar um vetor de objetos? Depois disso voce pode implementar no objeto o método compareTo da interface Comparable e organizar como voce quer.

DavidUser

Faz por POO, é mais prático, fácil e facilita vizualização e manutenção do código.

Ai sim depois fica mais fácio organizar seja lá pelo q quiser. Mas fiquei curioso… vou fazer aki e ai posto um exemplo.

DavidUser
public class estoque {
    static List<Produto> p=new ArrayList<Produto>();

    public static void main(String[] args){
        adiciona(2,"sabão");
        adiciona(1,"bolacha");
        adiciona(3,"vassoura");
        adiciona(4,"vassoura");
        adiciona(5,"vassoura");
        adiciona(6,"vassoura");
        
        imprime(1);
    }
    static void adiciona(int c,String n){
        Produto prod= new Produto();
        prod.cod=c;
        prod.nome=n;

        p.add(prod);
    }
    static void imprime(int op){
        for(int i=0;i<p.size();i++)System.out.println(p.get(i).cod+" "+p.get(i).nome);
    }

}
class Produto{
    int cod;
    String nome;
}
Criado 19 de junho de 2009
Ultima resposta 19 de jun. de 2009
Respostas 3
Participantes 3