Foros del Web » Programación para mayores de 30 ;) » Java »

Todos los elementos de un vector distintos

Estas en el tema de Todos los elementos de un vector distintos en el foro de Java en Foros del Web. Buenos días, Querría saber como podría hacer en Java la comprobación de si en un vector de enteros todos sus elementos son distintos: La cabecera ...
  #1 (permalink)  
Antiguo 11/05/2013, 01:59
 
Fecha de Ingreso: mayo-2013
Mensajes: 1
Antigüedad: 11 años, 7 meses
Puntos: 0
Todos los elementos de un vector distintos

Buenos días,

Querría saber como podría hacer en Java la comprobación de si en un vector de enteros todos sus elementos son distintos:

La cabecera de la función es la siguiente:
public boolean todosDistintos(int [] m).

Muchas gracias y un saludo
  #2 (permalink)  
Antiguo 11/05/2013, 20:49
Avatar de ggomez91  
Fecha de Ingreso: octubre-2008
Mensajes: 181
Antigüedad: 16 años, 2 meses
Puntos: 13
Respuesta: Todos los elementos de un vector distintos

pues por cada uno de los elementos debes revisar todos los demás y si encuentras uno que sea igual a este ya, es falso que todos son distintos. Saludos!
  #3 (permalink)  
Antiguo 13/05/2013, 17:37
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Todos los elementos de un vector distintos

Puedes usar Set para hacer una comprobación rápida.

Código Java:
Ver original
  1. import java.util.Set;
  2. import java.util.HashSet;
  3.  
  4.  
  5. public class Utils {
  6.  
  7.     public static void main(String args[]) {
  8.         int[] m1 = {1, 2, 3, 4};
  9.         int[] m2 = {1, 2, 2, 1};
  10.  
  11.         System.out.println(todosDistintos(m1));
  12.         System.out.println(todosDistintos(m2));
  13.  
  14.     }
  15.  
  16.     public static boolean todosDistintos(int [] m) {
  17.         Set<Integer> s = new HashSet<Integer>();
  18.         for (int index = 0; index < m.length; index++)
  19.             s.add(m[index]);
  20.         return s.size() == m.length;
  21.     }
  22. }
  #4 (permalink)  
Antiguo 14/05/2013, 13:18
Avatar de alguienmas  
Fecha de Ingreso: mayo-2009
Mensajes: 62
Antigüedad: 15 años, 7 meses
Puntos: 8
Respuesta: Todos los elementos de un vector distintos

Código:
public boolean todosDistintos(int [] m)
{
      for(int i=0; i < m.length; i++)
      {
            for(j=i+1; i < m.length; j++)
            {
                   if(m[i] == m[j])
                        return false;
             }
       }
       return true;
}
Saludos.
  #5 (permalink)  
Antiguo 14/05/2013, 13:51
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Todos los elementos de un vector distintos

Creo que en el segundo for quieres decir

Código java:
Ver original
  1. j < m.length

Otra cosa, no recomiendo esa solución para grandes cantidades de datos.
Ya que para 10,000 datos necesitarías hacer 50,000,000 de operaciones.

Etiquetas: distintos, elementos, vector
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:44.