Inverter um Vector

Preciso inverter o vector abaixo de forma que o primeiro valor vire o ultimo, o segundo o penúltimo e assim por diante:
Alguém pode me ajudar?

[code]public class exercici2_sala2 {
public static void main (String [] args ){
Scanner leia = new Scanner (System.in);
Vector vet = new Vector ();
int i;
for( i = 0; i<=100; i++){
System.out.print(“Digite um valor:”);
int n = leia.nextInt();
if (n==0){
break;
}
vet.add(n);
}
System.out.println(“Vetor:\n” + vet);

        }

}
}[/code]

public class exercici2_sala2 {  
    public static void main (String [] args ){  
        Scanner leia = new Scanner (System.in);  
            Vector <Integer> vet = new Vector <Integer>();  
            int i;  
            for( i = 0; i<=100; i++){  
                System.out.print("Digite um valor:");  
                int n = leia.nextInt();  
                if (n==0){  
                    break;  
                }  
                vet.add(n);  
             }     
        System.out.println("Vetor:\n" + vet);  
          
              
            }  
  
}  
}  

Se você tivesse realmente criado o código acima, saberia inverter um vetor. lol.

Utilize o reverse do Collections

public static void main (String [] args ){  
		 
	        Scanner leia = new Scanner (System.in);  
            Vector <Integer> vet = new Vector <Integer>();  
            int i;  
            
            for( i = 0; i<=3; i++){  
            	
                System.out.print("Digite um valor:");  
                int n = leia.nextInt(); 
                
                if (n==0){  
                    break;  
                }  
                vet.add(n);  
            }     
         
        Collections.reverse(vet);
        System.out.println("Vetor:\n" + vet);       
	 }  

[quote=diego.psw][code]
public class exercici2_sala2 {
public static void main (String [] args ){
Scanner leia = new Scanner (System.in);
Vector vet = new Vector ();
int i;
for( i = 0; i<=100; i++){
System.out.print(“Digite um valor:”);
int n = leia.nextInt();
if (n==0){
break;
}
vet.add(n);
}
System.out.println(“Vetor:\n” + vet);

        }  

}
}
[/code]

Se você tivesse realmente criado o código acima, saberia inverter um vetor. lol.[/quote]

Eu criei sim só que meu querido eu n me lembro como inverter o vector pois tentei de varias formas e não deu certo pois se estivesse dado certo não teria postado minha duvida, pois que eu saiba isto aqui é um forum de duvidas se você não podia me ajudar então não tivesse comentado nada.

[quote=Juliobrjp]Utilize o reverse do Collections

[code]
public static void main (String [] args ){

        Scanner leia = new Scanner (System.in);  
        Vector <Integer> vet = new Vector <Integer>();  
        int i;  
        
        for( i = 0; i<=3; i++){  
        	
            System.out.print("Digite um valor:");  
            int n = leia.nextInt(); 
            
            if (n==0){  
                break;  
            }  
            vet.add(n);  
        }     
     
    Collections.reverse(vet);
    System.out.println("Vetor:\n" + vet);       
 }  

[/code][/quote]

Muito obrigada nem me lembrava que eu podia usar Collections valeu mesmo.
:slight_smile:

[quote=wellington.nogueira]o reverse é uma forma simplificada de resolver isso mas é possível através de loop também.
Tente fazer por esta maneira para exercitar a lógica.

faça um loop que vá até o meio da lista arredondando para baixo (se for impar, o registro central não será mexido).
Pegue o elemento referente ao passo (iteração do andamento do loop) e elemento menos o passo e inverta-os.

Ao final terá a lista invertida.[/quote]a

Ok, vou tentar fazer dessa forma obrigada.

[quote=HellenLima][quote=Juliobrjp]Utilize o reverse do Collections

[code]
public static void main (String [] args ){

        Scanner leia = new Scanner (System.in);  
        Vector <Integer> vet = new Vector <Integer>();  
        int i;  
        
        for( i = 0; i<=3; i++){  
        	
            System.out.print("Digite um valor:");  
            int n = leia.nextInt(); 
            
            if (n==0){  
                break;  
            }  
            vet.add(n);  
        }     
     
    Collections.reverse(vet);
    System.out.println("Vetor:\n" + vet);       
 }  

[/code][/quote]

Muito obrigada nem me lembrava que eu podia usar Collections valeu mesmo.
:)[/quote]

Se vc está em aula muito provavelmente o prof não quer que vc use a classe Vector (porque aliás ninguem a usa) e sim um array. Tem um pessoal que chama array de vector e ai dá nisso :slight_smile:
Veja que usar Vector e reverse do collections é demasiado trivial. Não está testando a sua lógica e vc não está realmente aprendendo o que deveria : como intercambiar valores entre posições em um array.

Então, se realmente quer aprender, faça da forma mais dificil. Com array, e invertendo na mão com for como o wellington.nogueira sugeriu.

Se seu código deu erro, coloque o código que deu erro e o erro que deu. Isso fará com que as pessoas a possam ajudar mais e melhor. Sem ver a sua tentativa no código, não é possivel saber como vc pensa, e portanto não é possivel ajudá-la a entender o que está faltando entender.

o reverse é uma forma simplificada de resolver isso mas é possível através de loop também.
Tente fazer por esta maneira para exercitar a lógica.

faça um loop que vá até o meio da lista arredondando para baixo (se for impar, o registro central não será mexido).
Pegue o elemento referente ao passo (iteração do andamento do loop) e elemento menos o passo e inverta-os.

Ao final terá a lista invertida.

[quote=HellenLima][quote=wellington.nogueira]o reverse é uma forma simplificada de resolver isso mas é possível através de loop também.
Tente fazer por esta maneira para exercitar a lógica.

faça um loop que vá até o meio da lista arredondando para baixo (se for impar, o registro central não será mexido).
Pegue o elemento referente ao passo (iteração do andamento do loop) e elemento menos o passo e inverta-os.

Ao final terá a lista invertida.[/quote]a

Ok, vou tentar fazer dessa forma obrigada.[/quote]
Tente sim.
Essa idéia eu fiz de duas maneiras. Uma teve um resultado muito lento (especialmente com muitos dados) outra foi bem mais rápida. Só não vou postar ainda pq gostaria que você fizesse um.