1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Apagar espaços vazios num vector

Discussão em 'Programação' iniciada por BestKnight, 5 de Janeiro de 2009. (Respostas: 5; Visualizações: 1871)

  1. BestKnight

    BestKnight Power Member

    Boas,

    estao a trabalhar num projecto para uma disciplina da faculdade e estou agora com um problema. Gostava de saber como é que se faz para apagar os espaços vazios que possam exitir num vector:

    Por ex:

    suponhamos que temos um vector da seguinte forma

    Posição - Informação
    0 ------------34
    1
    2 ------------35
    3 ------------45
    4 ------------23
    5
    6
    7 ------------45


    e queria que fica-se algo como isto

    Posição - Informação
    0 ------------34
    1 ------------35
    2 ------------45
    3 ------------23
    4 ------------45


    o resultado que eu queria era apagar aqueles espaços vazios, mas n tou a ver como faço isso. Tou a fazer o projecto em Java com o NetBeans. Se alguém souber como ajudar, é que o projecto está quase todo feito, so faltam pequenos promenores como este, e eu queria q fica-se o mais "pimp" possivel!
     
  2. Baderous

    Baderous Banido

    Com um array normal não podes, porque estes são estáticos. Para isso, terás de usar uma classe que os implemente dinamicamente.
     
  3. Tomb4000

    Tomb4000 Power Member

    trabalhas aí um algoritmo que faça isso...
     
    Última edição: 5 de Janeiro de 2009
  4. dozy

    dozy Power Member

    A solução mais corriqueira seria percorrer o array do início ao fim, e sempre que encontres uma posição vazia, substituis pelo valor que encontrares a seguir. Vais contando o número de valores que encontras (N), e no fim crias um novo array que vai ter tamanho N, e colocas lá os valores.

    Há muitas formas de fazer isto.
     
  5. BestKnight

    BestKnight Power Member

    Código:
    for (int i=0;i<p.length;i++){
                    if (i <= p.length){
                        if (p[i].isEmpty()){
                            p[i] = p [i+1];
                        }
                    }
            }
    

    o que acontece com isto é q fica duas vezes cada posição tipo

    1
    1
    2
    2
    3
    3
     

Partilhar esta Página