Problema con clase Vector

Tengo un problema con la clase Vector; para cierto ejercicio tengo que crear una lista de pares de una ruleta, por lo cual pensé que la mejor solución seria crear una instancia de la clase Vector que contenga estos "pares". En este ejemplo de prueba ingreso 3 pares en un vector y lo muestro:

  1. package Ejercicios;
  2.  
  3. import java.util.Scanner;
  4. import java.util.Vector;
  5.  
  6. public class MTest3
  7. {
  8.     public static void main(String[] args)
  9.     {
  10.         Vector<parRuleta> pares = new Vector<parRuleta>(3);
  11.        
  12.         parRuleta par = new parRuleta();
  13.         int num=0; String col = new String("");
  14.         Scanner scanner = new Scanner(System.in);
  15.        
  16.         for(int i=0;i<3;i++)
  17.         {
  18.         System.out.print("Ingrese el numero del par: ");
  19.         num = met.ingresoval(0, 36);    //Ingreso un valor entre 0 y 36
  20.         par.setNum((byte)num);
  21.        
  22.         System.out.print("Ingrese el color del par (n, r, v): ");
  23.         col = scanner.nextLine();
  24.         par.setColor(col);
  25.        
  26.         System.out.println("Se ha ingresado el par: "+par.toString());
  27.         pares.add(par);
  28.         }
  29.        
  30.         System.out.println("Vector de pares: "+pares.toString());
  31.     }
  32. }

Ingresando los 3 pares consigo esto:

Ingrese el numero del par: 31
Ingrese el color del par (n, r, v): n
Se ha ingresado el par: [n, 31]
Ingrese el numero del par: 29
Ingrese el color del par (n, r, v): n
Se ha ingresado el par: [n, 29]
Ingrese el numero del par: 20
Ingrese el color del par (n, r, v): n
Se ha ingresado el par: [n, 20]
Vector de pares: [[n, 20], [n, 20], [n, 20]]

Mi problema es el siguiente (como verán en el resultado), cuando agrego un elemento al vector este pisa y reemplaza a TODOS los elementos anteriores, lo revise de arriba a abajo pero no se que estoy haciendo mal, alguien que pueda darme alguna sugerencia?
Gracias de antemano

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de JaimeItlzc

Podrias poner tu otra clase java

Podrías poner tu otra clase java por que siento que estas haciendo algo incensario.
Tal vez otro miembro con mas experiencia te puede decir que yo ami parecer estas implementando mal la Clase Vector.

Saludos.
Por la otra clase java y con gusto te ayudo a resolver el error.

Imagen de lgg90

Oh, si te referías a la clase

Oh, si te referías a la clase parRuleta es esta (al menos por ahora, le saque la mayoría de los métodos innecesarios), también corregí un par de cosas que estaban mal en el código anterior, sin éxito alguno con el problema

  1. package Ejercicios;
  2.  
  3. public class parRuleta
  4. {//Clase que representa pares correspondientes a los tiros de una ruleta
  5.    
  6.     private String color;   //Color del acierto
  7.     private byte num;   //Numero acertado
  8.  
  9. //CONSTRUCTORES DE CLASE
  10.     public parRuleta()
  11.     {
  12.         setColor("");
  13.         setNum((byte) 0);
  14.     }
  15.    
  16.     public parRuleta(String a, byte b)
  17.     {
  18.         color=a;
  19.         num=b;
  20.     }
  21.  
  22. //METODOS DE CLASE
  23.     public String toString()
  24.     {
  25.         StringBuffer sb = new StringBuffer();
  26.        
  27.         sb.append("[");
  28.         sb.append(getColor());
  29.         sb.append(", ");
  30.         sb.append(getNum());
  31.         sb.append("]");
  32.         return sb.toString();
  33.     }
  34.    
  35.     public boolean equals(parRuleta a)
  36.     {
  37.         if (((byte)a.getNum())==((byte)getNum()) && a.getColor().equals(getColor()))
  38.                 return true;
  39.         else
  40.                 return false;
  41.     }
  42.  
  43. //SETTERS Y GETTERS
  44.         void setNum(byte num)
  45.         {
  46.                 this.num = num;
  47.         }
  48.  
  49.         byte getNum()
  50.         {
  51.                 return num;
  52.         }
  53.  
  54.         void setColor(String color)
  55.         {
  56.                 this.color = color;
  57.         }
  58.  
  59.         String getColor()
  60.         {
  61.                 return color;
  62.         }
  63.    
  64. }

La vedad que me desconcierta bastante, hace muy poco que empece a estudiar el lenguaje y en las veces anteriores que use la clase Vector no había tenido problemas, pero esta es la primera vez que lo instancio trabajando con una clase propia, hasta ahora lo había venido haciendo con tipos primitivos como Integer sin ningún lío

Imagen de JaimeItlzc

Haber checalo

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.Vector;
 
public class ParesNumeros
{
       
        private final String color;
        private final byte numero;
       
  ParesNumeros(byte num,String col){
          this.color = col;
          this.numero=num;
  }
 
public String toString(){
      return "["+color+","+numero+"]";
   }

        public static void main(String[] args) throws IOException
    {
        Vector<ParesNumeros> pares = new Vector<ParesNumeros>();
        byte num=0;
        String col = new String("");
        Scanner scanner = new Scanner(System.in);
        BufferedReader leer= new BufferedReader(new InputStreamReader(System.in));
       
        for(int i=0;i<3;i++)
        {
        System.out.print("Ingrese el numero del par: ");
        num = scanner.nextByte();
 
        System.out.print("Ingrese el color del par (n, r, v): ");
        col = leer.readLine();
       
        System.out.println("Se ha ingresado el par: ["+num+","+col+"]");
        pares.add(new ParesNumeros(num,col));
        }
       
        System.out.println("Vector de pares: "+pares);
    }
}

Este post te puede ayudar mucho.
Comportamiento de un vector Explicacion @OscarRyz

Por otra parte mi me surgio una duda por que cuando pongo asi:

   System.out.print("Ingrese el numero del par: ");
        num = scanner.nextByte(); //Esta si puedo ingresar informacion
 
        System.out.print("Ingrese el color del par (n, r, v): ");
        col = scanner.nextLine(); //Esta se la salta

Saludos.

Imagen de lgg90

Lo encontre!

Al final encontré cual era el problema, alguien se cruzo con el mismo problema que yo y fue contestado en este post, lo encontré desde el que me pasaste arriba

Me pareció poco obvio al comienzo pero hay que instanciar nuevamente por cada ingreso de datos que se hace, de no hacerlo siempre se termina agregando el mismo objeto repetidas veces

  1. package Ejercicios;
  2.  
  3. import java.util.Scanner;
  4. import java.util.Vector;
  5.  
  6. public class MTest3
  7. {
  8.     public static void main(String[] args)
  9.     {
  10.         Vector<Parruleta> pares = new Vector<Parruleta>(3);
  11.        
  12.         Parruleta par = new Parruleta();
  13.         int num=0; String col = new String("");
  14.        
  15.         Scanner scanner = new Scanner(System.in);
  16.        
  17.         for(int i=0;i<3;i++)
  18.         {
  19.         par = new Parruleta();   //Esto era lo que faltaba!!
  20.         System.out.print("Ingrese el numero del par: ");
  21.         num = met.ingresoval(0, 36);    //Ingreso un valor entre 0 y 36
  22.         par.setNum((byte)num);
  23.        
  24.         System.out.print("Ingrese el color del par (n, r, v): ");
  25.         col = scanner.nextLine();
  26.         par.setColor(col);
  27.        
  28.         System.out.println("Se ha ingresado el par: "+par.toString());
  29.         pares.add(par);
  30.         }
  31.        
  32.         System.out.println("Vector de pares: "+pares.toString());
  33.     }
  34. }

De donde se obtiene la siguiente salida

Ingrese el numero del par: 31
Ingrese el color del par (n, r, v): n
Se ha ingresado el par: [n, 31]
Ingrese el numero del par: 29
Ingrese el color del par (n, r, v): n
Se ha ingresado el par: [n, 29]
Ingrese el numero del par: 20
Ingrese el color del par (n, r, v): n
Se ha ingresado el par: [n, 20]
Vector de pares: [[n, 31], [n, 29], [n, 20]]

Se que es muy elemental pero lo hice como un ejemplo aparte a fin de buscar y verificar este problema, espero que a alguien le sirva porque puedo apostar que la mayoría de los que vean la clase Vector por primera vez se toparan con este inconveniente (por desgracia :/)

En fin, muchas gracias por la ayuda