elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Java / Re: Duda sobre la libreria java.util.* en: 15 Noviembre 2012, 18:42 pm
Hola

int : Es un tipo de dato PRIMITIVO.
Tipo de dato Primitivo:  Se les llama haci xq estan integrados en el sistema y en realidad no son objetos, lo cual ahce q su uso sea mas eficiente

¿como no da error? la classe integer esta en la librería java.lang

  Integer.parseInt es un método estático de la clase Integer.

   Metodo Estatico: el comportamiento del método es independiente de la instancia de la clase. No se necesita Instanciar la clase para poder UTILIZARLA.

Bueno y por ultimo este código: import java.util.*   

  Weno tan solo llama a todas las clases q tiene "embebido", lo ideal seria q pusieras tan solo el nombre de la clase q deseas utilizar ya q genera un sobrecarga.!

Salu2
2  Programación / Java / [Aporte] ....::: Clase Object del paquete java.lang :::... en: 1 Octubre 2012, 02:58 am

....::: Clase Object del paquete java.lang :::...

El paquete más importante de Java es java.lang. Este paquete aporta interfaces y clases tan fundamentales para Java que están integradas con el propio lenguaje y no es preciso importarlas. Cada clase es un descendiente, directo o indirecto, de la clase Object. Cada clase que usa o escribe hereda los métodos de instancia de Object.

Los métodos heredados de Object que se discuten en esta sección son:

  • 1.-equals
  • 2.-finalize
  • 3.-getClass
  • 4.-hashCode
  • 5.-toString

1.- equals

El método equals() compara dos objetos por igualdad y devuelve true si son iguales. El método equals() proveído en la clase Object usa el operador de identidad (==) para determinar si dos objetos son iguales.

  • Para tipos de datos primitivos (boolean,byte,short,int,long,float,double), esto da el resultado correcto.
  • Para objetos, sin embargo, no. El método equals() proveído por Object comprueba si las referencias del objeto son iguales esto es, si los objetos comparados son exactamente el mismo objeto.


Ejemplo: En ste caso solo se crea un Objeto String q se almacena en memoria, cadena_2, contiene una referencia hacia este Objeto.!

Código
  1.  
  2. //Creamos 1 solo objeto String
  3. String cadena_1= "Clase Object";
  4. String cadena_2= "Clase Object";
  5.  
  6. //Comparamos las referencias
  7. if(cadena_1==cadena_2)
  8.   System.out.println("Las referencias son al mismo objecto ..!!");
  9. else
  10.   System.out.println("Las referencias no son al mismo objecto ..!!");
  11.  
  12. //Comparamos el contenido
  13. if(cadena_1.equals(cadena_2))
  14.   System.out.println("El contenido es el mismo");
  15. else
  16.   System.out.println("El contenido no es el mismo");
  17.  
  18.  

Los resultados son:

         Las referencias son al mismo objecto ..!!
         El contenido es el mismo


Ejemplo: En ste caso la 1mera linea crea un nuevo Objeto String duplicando el existente en el area de memoria reservada y almacena una referencia al mismo en str_1. En la 2da linea simplemente almacena en str_2 una referencia al objeto q ya existe en memoria.!


Código
  1.  
  2. //Creamos 2 objetos String
  3. String str_1= new String("Clase Object");
  4. String str_2= "Clase Object";
  5.  
  6. //Comparamos las referencias
  7. if(str_1==str_2)
  8.   System.out.println("Las referencias son al mismo objecto ..!!");
  9. else
  10.   System.out.println("Las referencias no son al mismo objecto ..!!");
  11.  
  12. //Comparamos el contenido
  13. if(str_1.equals(str_2))
  14.   System.out.println("El contenido es el mismo");
  15. else
  16.   System.out.println("El contenido no es el mismo");
  17.  
  18.  

Los resultados son:

           Las referencias no son al mismo objecto ..!!
           El contenido es el mismo

 
Ejemplo: Se crean 2 Objetos en la Memoria destinada para los objetos.!

Código
  1.  
  2. //Creamos 2 objetos String
  3. String cad_1= new String("Clase Object,Equals");
  4. String cad_2= new String("Clase Object,Equals");
  5.  
  6. //Comparamos las referencias
  7. if(cad_1==cad_2)
  8.   System.out.println("Las referencias son al mismo objecto ..!!");
  9. else
  10.   System.out.println("Las referencias no son al mismo objecto ..!!");
  11.  
  12. //Comparamos el contenido
  13. if(cad_1.equals(cad_2))
  14.   System.out.println("El contenido es el mismo");
  15. else
  16.   System.out.println("El contenido no es el mismo");
  17.  
  18.  

Los resultados son:

          Las referencias no son al mismo objecto ..!!
          El contenido es el mismo   
     

2.-finalize

La clase Object provee un método de llamada de regreso, finalize(), que puede invocarse sobre un objeto cuando se convierte en basura. La implementación de finalize() de Object no hace nada puede sobrepasar finalize() para limpiar, tal como liberar recursos.

El método finalize() puede llamarse automáticamente por el sistema, pero cuando se llama, o incluso si se llama, es incierto. Por eso, no debería depender en este método para hacer la limpieza por usted. Por ejemplo, si no cierra los descriptores de archivo después de efectuar E/S y espera que finalize() los cierre por usted, podría quedarse sin descriptores de archivo.

  • Método que nos permite gestionar la limpieza de los recursos utilizados en la clase antes de que esta sea eliminada por el Garbage Collector. En la clase Object no ejecuta nada. Es un método que está sobrescrito en las clases que lo utilicen.

Código
  1.  
  2. protected void finalize() throws Throwable
  3.  
  4.  

La definición del método finalize() tiene la siguiente estructura:

Código
  1.  
  2. protected void finalize() throws Throwable
  3. {
  4.    System.out.println("Finalizando el Objeto");
  5.    super.finalize();
  6. }
  7.  
  8.  

Al incluir el método finalize() sobre un objeto estaremos reescribiendo el método finalize() por defecto que viene en la clase Object. Mediante la sentencia super.finalize() estamos ejecutando el método finalize() de las clases padre.
Aunque los métodos finalize() se ejecutarán cuando pase el garbage collector, existe la posibilidad de sugerir a la máquina virtual java (jvm) que se ejecute el finalize de los métodos. Esto lo conseguiremos ejecutando el método runFinalization() de la clase System.

  • El método System.runFinalization() solo es una sugerencia. No implica una ejecución directa de los métodos finalize().

El código de ejecución del System.runFinalization() sería el siguiente:

Código
  1.  
  2. public static void main(String[] args)
  3. {
  4.   FinalizarUnObjeto fuo = new FinalizarUnObjeto();
  5.   System.out.println(fuo.toString());
  6.   fuo = null;
  7.   System.runFinalization();
  8. }
  9.  
  10.  

.-getClass

El método getClass() es un método final (no puede sobreescribirse) que devuelve una representación en tiempo de ejecución de la clase del objeto. El método getClass() devuelve un objeto Class, el cual tiene métodos que puede usar para obtener información sobre la clase, tal como su nombre (getSimpleName()), su superclase (getSuperclass()), y las interfaces que implementa (getInterfaces()).

Por ejemplo, el siguiente método obtiene y despliega el nombre de clase de un objeto, tambien a que super clase pertenece:

Código
  1.  
  2. //Creamos una varible del tipo de la clase, luego con NEW creamos el objeto.
  3. Clase_Object_GetClass objGetClass= new Clase_Object_GetClass();
  4.  
  5. //Nombre de clase
  6. System.out.println("Nombre de la clase es : "+objGetClass.getClass().getSimpleName());
  7. //Su super Clase
  8. System.out.println("Su super Clase es  : "+objGetClass.getClass().getSuperclass());
  9.  
  10.  


Un uso muy manejado del método getClass() es crear un ejemplar de una clase sin conocer la clase en el momento de la compilación.
La clase Class, en el paquete java.lang, tiene un gran número de métodos (más de 50). Por ejemplo, puee comprobar para ver si la clase es una anotación (isAnnotation()), una interfaz (isInterface()), o una enumeración (isEnum()). Puede ver cuáles son los campos del objeto (getFields()) o cuáles son sus métodos (getMethods()), y así sucesivamente.

4.-hashCode

El valor devuelto por hashCode() es el código de identificación (hash) del objeto, que es la dirección de memoria del objeto en hexadecimal.

Por definición, si dos objetos son iguales, el código de identificación debe también ser igual. Si sobrepasa el método equals, cambia la forma en que se comparan los objetos y la implementación de hashCode() de Object ya no es válida. Por eso, si sobrepasa el método equals(), debe también sobrepasar el método hashCode() también.

Código
  1.  
  2.        //Creamos una varible del tipo de la clase, luego con NEW creamos el objeto.
  3.        Clase_Object_GetClass objGetClass= new Clase_Object_GetClass();
  4.  
  5.         System.out.println("Dirección de memoria del objeto en hexadecimal : "+objGetClass.hashCode());
  6.  
  7.  

5.-toString

Debería siempre considerar el método toString() en sus clases. El método toString() de Object devuelve una representación  String del objeto, que es muy útil para la depuración. La representación String para un objeto depende enteramente del objeto, que es la razón por la que necesita sobrepasar a toString() en sus clases.

Este método devuelve una cadena de texto que representa al objeto. Se puede utilizar toString para mostrar un objeto. La representación de un objeto depende enteramente del objeto. El String de un objeto entero es el valor del entero mostrado como texto.

Por ejemplo, se podría mostrar una representación del Thread actual de la siguiente forma.

Código
  1.  
  2. System.out.println(Thread.currentThread().toString());
  3. System.out.println(new Integer(44).toString());
  4.  
  5.  
3  Programación / Java / [Aporte] ....::: Clase Arrays del paquete java.util :::... en: 24 Septiembre 2012, 06:43 am
Hola

...::: Clase Arrays :::...

La clase arrays del paquete java.util contiene varios métodos static para manipular matrices. Esta clase se deriva directamente de Object.

Esta clase intenta solventar alguno de los problemas que pueden surgir al trabajar con arrays, como la ordenación o la búsqueda.

  • binarySearch
  • equals
  • fill
  • sort
  • asList

Nota:
Si es necesario tendriamos q importar la clase.

Código
  1. import java.util.Arrays;

Nota:
Utilisaremos sta clase para ingresar datos x teclado..! si es necesaio tambien tendremos q importarla

Código
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. public class Leer
  6. {
  7.  public static String dato()
  8.  {
  9.    String sdato = "";
  10.    try
  11.    {
  12.      // Definir un flujo de caracteres de entrada: flujoE
  13.      BufferedReader flujoE = new BufferedReader(isr);
  14.      // Leer. La entrada finaliza al pulsar la tecla Entrar
  15.      sdato = flujoE.readLine();
  16.    }
  17.    catch(IOException e)
  18.    {
  19.      System.err.println("Error: " + e.getMessage());
  20.    }
  21.    return sdato; // devolver el dato tecleado
  22.  }
  23.  
  24.  public static short datoShort()
  25.  {
  26.    try
  27.    {
  28.      return Short.parseShort(dato());
  29.    }
  30.    catch(NumberFormatException e)
  31.    {
  32.      return Short.MIN_VALUE; // valor más pequeño
  33.    }
  34.  }
  35.  
  36.  public static int datoInt()
  37.  {
  38.    try
  39.    {
  40.      return Integer.parseInt(dato());
  41.    }
  42.    catch(NumberFormatException e)
  43.    {
  44.      return Integer.MIN_VALUE; // valor más pequeño
  45.    }
  46.  }
  47.  
  48.  public static long datoLong()
  49.  {
  50.    try
  51.    {
  52.      return Long.parseLong(dato());
  53.    }
  54.    catch(NumberFormatException e)
  55.    {
  56.      return Long.MIN_VALUE; // valor más pequeño
  57.    }
  58.  }
  59.  
  60.  public static float datoFloat()
  61.  {
  62.    try
  63.    {
  64.      Float f = new Float(dato());
  65.      return f.floatValue();
  66.    }
  67.    catch(NumberFormatException e)
  68.    {
  69.      return Float.NaN; // No es un Número; valor float.
  70.    }
  71.  }
  72.  
  73.  public static double datoDouble()
  74.  {
  75.    try
  76.    {
  77.      Double d = new Double(dato());
  78.      return d.doubleValue();
  79.    }
  80.    catch(NumberFormatException e)
  81.    {
  82.      return Double.NaN; // No es un Número; valor double.
  83.    }
  84.  }
  85.  
  86. }
  87.  

BinarySearch

Este método permite buscar un valor en una matriz que esté ordenada ascendentemente utilizando el algoritmo de búsqueda binaria. Se trata de un algoritmo muy eficiente en cuanto a que el tiempo requerido para utilizar una búsqueda es muy pequeño. La sintaxis expresada de forma genérica para utilizar este método es la siguiente:

Código
  1. static int binarySearch (tipo[]m, tipo clave)

Donde m representa la matriz, clave es el valor que se desea buscar del mismo tipo que los elementos de la matriz, y tipo es cualquier tipo de datos de los siguientes: byte, char, short, int, long, float, double y Objet.

El valor devuelto es un entero correspondiente al índice del elemento que coincide cono el valor buscado. Si el valor buscado no se encuentra, entonces el valor devuelto es: -(punto de inserción). El punto de insercion empieza a contar desde "1", y no desde "0"

Como ejemplo, analicemos el siguiente código:
Código
  1. int vector[]={2,4,6,8,10,12,14,16,18,20}; //vector ordenado ascendentemente
  2. int i;
  3. i = Arrays.binarySearch(a, 6); // Devuelve i = 2 que es su posicion en la matriz.
  4. i = Arrays.binarySearch(a, 7); //Devuelve i=-4 al no existir devuelve en negativo el lugar que le corresponderia, enpezando a contar desde 1
  5. i = Arrays.binarySearch(a, 1); //Devuelve i=-1 al no existir devuelve en negativo el lugar que le corresponderia en en array, enpezando a contar desde 1
  6. i = Arrays.binarySearch(a, 31); //Devuelve i=-11 al no existir devuelve en negativo el lugar que le corresponderia en en array, enpezando a contar desde 1
  7.  

Codigo completo del ejemplo:

Código
  1.  
  2.        //Declaramos e Inicializamos el Vector
  3.        int vector[]={2,4,6,8,10,12,14,16,18,20};
  4.  
  5.        //Cabecera
  6.        System.out.print("*******************************\n");
  7.        System.out.print("******** Clase Arrays *********\n");
  8.        System.out.print("*******************************\n\n");
  9.        System.out.println("Valores ");
  10.        System.out.println("-------\n");
  11.  
  12.        //Recorremos el vector para Mostrarlo
  13.        for(int i=0;i<vector.length;i++)
  14.        {
  15.            System.out.print(" "+vector[i]);//Mostramos los valores
  16.        }
  17.  
  18.        //Metodos Static BinarySearcho de la Clase Arrays
  19.        //SubCabecera
  20.        System.out.print("\n\nBinarySearch\n");
  21.        System.out.print("-------------");
  22.        //Esta variable contendra al valor a buscar en el vector
  23.        int x;
  24.        //Validamos que el valor a buscar este dentro del
  25.        //rango del vector
  26.        do
  27.        {
  28.            System.out.print("\n\n\tBuscar --> ");
  29.            x=Leer.datoInt();
  30.       }while(x<2 || x>32);
  31.       //Mostramos la Posicion del valor, dentro del vector
  32.       System.out.println("\tPosicion --> "+Arrays.binarySearch(vector, x));
  33.  
  34.  

equals

Este método permite verificar si dos matrices son iguales. Dos matrices se consideran iguales cuando ambas tienen el mismo número de elementos y en el mismo orden. Así mismo, dos matrices también son consideradas iguales si sus referencias valen null. La sintaxis para utilizar este método, expresada de forma genérica, es la siguiente:

Código
  1. static boolean equals(tipo[]m1, tipo[]m2)

En esta estructura m1 y m2 son matrices del mismo tipo. Tipo es cualquier tipo de datos de los siguientes: boolean, byte, char, short, int, long, float, double y Objet.

El valor devuelto será true si ambas matrices son iguales y false en caso contrario.

Como ejemplo, se puede probar el resultado que produce el siguiente código:

Código
  1.  
  2.        //Declaramos e Inicializamos el Vector
  3.        int vector_1[]={2,4,6,8,10,12,14,16,18,20};
  4.        int vector_2[]={2,4,6,8,10,12,14,16,18,20};
  5.  
  6.        //Cabecera
  7.        System.out.print("***************************************\n");
  8.        System.out.print("************ Clase Arrays *************\n");
  9.        System.out.print("***************************************\n\n");
  10.        System.out.println("Valores ");
  11.        System.out.println("-------\n");
  12.  
  13.        System.out.print("Vector 1 -->");
  14.        //Recorremos el vector_1 para Mostrarlo
  15.        for(int i=0;i<vector_1.length;i++)
  16.        {
  17.            System.out.print(" "+vector_1[i]);//Mostramos los valores
  18.        }
  19.        System.out.print("\nVector 2 -->");
  20.        //Recorremos el vector_2 para Mostrarlo
  21.        for(int i=0;i<vector_1.length;i++)
  22.        {
  23.            System.out.print(" "+vector_1[i]);//Mostramos los valores
  24.        }
  25.  
  26.        //Metodos Static equals de la Clase Arrays
  27.        //SubCabecera
  28.        System.out.print("\n\nEquals\n");
  29.        System.out.print("------\n");
  30.  
  31.        if(Arrays.equals(vector_1, vector_2))
  32.        {
  33.            System.out.println("\tLos Arrays son Iguales");
  34.        }
  35.        else
  36.        {
  37.            System.out.println("\tLos Arrays son Iguales");
  38.        }
  39.  
  40.  

fill

Este método permite asignar un valor a todos los elementos de una matriz, o bien a cada elemento de un rango especificado. La sintaxis expresada de forma genérica para utilizar este método es la siguiente:

Código
  1. static void fill(tipo[] m, tipo valor)
  2. static void fill (tipo[] m, intdesdeInd, int hastaInd, tipo valor)


En la anterior sintaxis m es la matriz y valor es el valor a asignar. Cuando sólo queramos asignar el valor a un rango de elementos, utilizaremos el segundo formato de fill donde desdeInd y hastaInd definen ese rango, tipo es cualquier tipo de datos de los siguientes: boolean, byte, char, short, int, long, float, double y Objet.

Un ejemplo de cómo utilizar este método es:

Código
  1.  
  2.        //Declaramos e Inicializamos el Vector
  3.        int vector[]={2,4,6,8,10,12,14,16,18,20};
  4.  
  5.        //Cabecera
  6.        System.out.print("***************************************\n");
  7.        System.out.print("************ Clase Arrays *************\n");
  8.        System.out.print("***************************************\n\n");
  9.        System.out.println("Valores ");
  10.        System.out.println("-------\n");
  11.  
  12.        //Recorremos el vector para Mostrarlo
  13.        for(int i=0;i<vector.length;i++)
  14.        {
  15.            System.out.print(" "+vector[i]);//Mostramos los valores
  16.        }
  17.        //Metodos Static Fill de la Clase Arrays
  18.        //SubCabecera
  19.        System.out.print("\n\nFill\n");
  20.        System.out.print("----\n\n");
  21.  
  22.         System.out.print(". Todos los valores del vector\n");
  23.        //damos el valor "0", a todos los elementos del vector
  24.        Arrays.fill(vector, 0);
  25.  
  26.        //Recorremos el vector para verificar el cambio de valor
  27.        for(int i=0;i<vector.length;i++)
  28.        {
  29.            System.out.print(" "+vector[i]);//Mostramos los valores
  30.        }
  31.  
  32. //        System.out.print("\n. Un rango de valores del vector\n");
  33. //        //damos el valor "0", un rango de valores del vector
  34. //        Arrays.fill(vector,2, 6, 0);
  35. //
  36. //        //Recorremos el vector para verificar el cambio de valor
  37. //        for(int i=0;i<vector.length;i++)
  38. //        {
  39. //            System.out.print(" "+vector[i]);//Mostramos los valores
  40. //        }
  41.  
  42.  

sort
[/size]
Este método permite ordenar los elementos de una matriz en orden ascendente utilizando el algoritmo quicksort. Este método es muy eficiente en cuanto a que el tiempo requerido para realizar la ordenación es mínimo. La sintaxis expresada de forma genérica para utilizar este método es la siguiente:

Código
  1. static void sort(tipo[]m)
  2. static void sort(tipo[]m, int desdeInd, int hastaInd)


En la anterior sintaxis m es la matriz a ordenar. Cuando sólo queramos ordenar un rango de elementos, utilizaremos el segundo formato de sort donde desdeInd y hastaInd definen los límites de ese rango. Tipo es cualquier objeto de los siguientes: boolean, byte, char, short, int, long, float, double y Objet.

Como ejemplo práctico comprobar el resultado que produce este código:

Código
  1.  
  2.        //Declaramos y Construimos al vector
  3.        int vector[]=new int[10];
  4.  
  5.        //Cabecera
  6.        System.out.print("***************************************\n");
  7.        System.out.print("************ Clase Arrays *************\n");
  8.        System.out.print("***************************************\n\n");
  9.        System.out.println("Valores ");
  10.        System.out.println("-------\n");
  11.  
  12.        //Asignamos valores al vector
  13.        for(int i=0;i<vector.length;i++)
  14.        {
  15.            vector[i]=(int)(Math.random()*(10-0)+0);//valores aleatorios
  16.        }
  17.        //Recorremos el vector para Mostrarlo
  18.        for(int i=0;i<vector.length;i++)
  19.        {
  20.            System.out.print(" "+vector[i]);//Mostramos los valores
  21.        }
  22.        //Metodos Static Sort de la Clase Arrays
  23.        //SubCabecera
  24.        System.out.print("\n\nSort\n");
  25.        System.out.print("----\n");
  26.  
  27. //         System.out.print("\n. Valores del vector ordenados\n");
  28. //        //damos el valor "0", a todos los elementos del vector
  29. //        Arrays.sort(vector);
  30. //
  31. //        //Recorremos el vector para verificar el cambio de valor
  32. //        for(int i=0;i<vector.length;i++)
  33. //        {
  34. //            System.out.print(" "+vector[i]);//Mostramos los valores
  35. //        }
  36.  
  37.        System.out.print("\n. Un rango de valores del vector ordenados\n");
  38.        //Ordenamos un rango del vector
  39.        Arrays.sort(vector,2,6);
  40.  
  41.        //Recorremos el vector para verificar el cambio de valor
  42.        for(int i=0;i<vector.length;i++)
  43.        {
  44.            System.out.print(" "+vector[i]);//Mostramos los valores
  45.        }
  46.    }
  47.  

asList

Devuelve una lista de tamaño fijo respaldado por la matriz especificada. Este método actúa como puente entre las API basada en arreglos y basada en la colección-, en combinación con Collection.toArray. La lista devuelta es serializable y aplica RandomAccess.

Código
  1. public static <T> List<T> asList(T... a)

Pero mucho cuidado, este método nos crea una lista de tamaño fijo, y por detrás sigue funcionando sobre nuestro array (en realidad es una implementación especial de AbstractList). Veámoslo con dos ejemplos.

Este trozo de código no va a funcionar, la lista es de tamaño fijo y se lanza una excepción.

Código
  1.  
  2.        String[] vector = { "a","b","c","d","e" };
  3. List<String> lista = Arrays.asList(vector);
  4. lista.add("z");
  5.  

Las modificaciones que hagamos en el array original se reflejarán en la lista (y viceversa).

Código
  1.  
  2.        //Declaramos y Construimos al vector
  3.        String vector[]= {"a","b","c","d","e"};
  4.  
  5.        //Cabecera
  6.        System.out.print("***************************************\n");
  7.        System.out.print("************ Clase Arrays *************\n");
  8.        System.out.print("***************************************\n\n");
  9.        System.out.println("Valores ");
  10.        System.out.println("-------\n");
  11.  
  12.        //Recorremos el vector para Mostrarlo
  13.        for(int i=0;i<vector.length;i++)
  14.        {
  15.            System.out.print(" "+vector[i]);//Mostramos los valores
  16.        }
  17.        //Metodos Static asList de la Clase Arrays
  18.        //SubCabecera
  19.        System.out.print("\n\nasList\n");
  20.        System.out.print("-------\n");
  21.  
  22.        //Creamos la lista
  23.        List<String> lista= Arrays.asList(vector);
  24.        System.out.println(lista);
  25.  
  26.        //modificamos un valor del vector
  27.        vector[1]="z";
  28.        System.out.println(lista);
  29.        //modificamos un valor del vector
  30.        vector[4]="x";
  31.        System.out.println(lista)
  32.  
  33.  

En este caso la salida producida será:
asList
-------
[a, b, c, d, e]
[a, z, c, d, e]
[a, z, c, d, x]

Nota :
cuidado con utilizar este método para convertir un array a una lista para, por ejemplo, cumplir con la firma de métodos de terceros que puedan intentar modificarla.

Salu2
4  Programación / Java / Re: Ayuda arreglos en: 22 Septiembre 2012, 09:07 am
Hola

"Aceptar 10 números que deben estar en el rango de cero y diez, los cuales deben de ser extraídos utilizando el método rand(). Encontrar el mayor y cuantas veces se repite."

Espero haberte ayudado.!! :D

Código
  1.  
  2.  // TODO code application logic here
  3.        int limiteSuperior= 10, limiteInferior= 0;      
  4.  
  5.        int i; //Par usarlo en el bucle
  6.        int mayor=limiteInferior;
  7.        int  pos = 0; //contndra la posicion q tenga el numero mayor
  8.        int repite=0; //Cuntas veces se repite el numero mayor
  9.  
  10.        //declaramos y creamos al vector q contendra los valores aleatorios
  11.        //entre el rango de 0 y 10
  12.        int vAleatorio[]=new int[limiteSuperior];
  13.  
  14.        System.out.println("***  Aleatorios [0-10] ***\n");
  15.  
  16.        for( i=0; i<vAleatorio.length;i++)
  17.        {
  18.            //Formula: //numeroGenerado = RANDOM x (limiteSuperior - limiteInferior) + limiteInferior
  19.            vAleatorio[i]=(int)(Math.random()*(limiteSuperior-limiteInferior)+limiteInferior);
  20.            //Mostramos los valores y sus posiciones
  21.            System.out.println("\t["+i+"] --> "+  vAleatorio[i]);
  22.  
  23.            //Obtenemos el mayor valor del vector me diante una comparacion
  24.            if(mayor<vAleatorio[i])
  25.            {
  26.                //Asignamos el mayor valor
  27.                mayor=vAleatorio[i];
  28.                //Obtenemos la posicion del mayor valor
  29.                pos=i;
  30.            }
  31.        }
  32.  
  33.        //Recorremos el vector para saber cuantas veces se repite el mayor valor
  34.        for( i=0; i<vAleatorio.length;i++)
  35.        {
  36.            if(mayor==vAleatorio[i])
  37.            {
  38.                repite++;
  39.            }
  40.        }
  41.        System.out.println("\nEl Mayor numero es --> "+  mayor);
  42.        System.out.println("Esta en la posicion --> "+pos);
  43.        System.out.println("Aparece --> "+repite);
  44.  
  45.  
Salu2
5  Programación / Java / Re: java como pasar valores de 2 vectores a una matriz en: 22 Septiembre 2012, 07:56 am
Hola

Es gratificante tu comentario..!! espero seguir aportando  ;-)

Salu2
6  Programación / Java / Re: java como pasar valores de 2 vectores a una matriz en: 18 Septiembre 2012, 07:13 am
Hola  ;-)

Te paso la solucion, espero no sea muy tarde..!!  :o

1.- Esta clase sirve para introducir datos x teclado, solo tienes q importarla <import>

Código
  1. package Utilitarios;
  2.  
  3. import java.io.*;
  4.  
  5. public class Leer
  6. {
  7.  public static String dato()
  8.  {
  9.    String sdato = "";
  10.    try
  11.    {
  12.      // Definir un flujo de caracteres de entrada: flujoE
  13.      BufferedReader flujoE = new BufferedReader(isr);
  14.      // Leer. La entrada finaliza al pulsar la tecla Entrar
  15.      sdato = flujoE.readLine();
  16.    }
  17.    catch(IOException e)
  18.    {
  19.      System.err.println("Error: " + e.getMessage());
  20.    }
  21.    return sdato; // devolver el dato tecleado
  22.  }
  23.  
  24.  public static short datoShort()
  25.  {
  26.    try
  27.    {
  28.      return Short.parseShort(dato());
  29.    }
  30.    catch(NumberFormatException e)
  31.    {
  32.      return Short.MIN_VALUE; // valor más pequeño
  33.    }
  34.  }
  35.  
  36.  public static int datoInt()
  37.  {
  38.    try
  39.    {
  40.      return Integer.parseInt(dato());
  41.    }
  42.    catch(NumberFormatException e)
  43.    {
  44.      return Integer.MIN_VALUE; // valor más pequeño
  45.    }
  46.  }
  47.  
  48.  public static long datoLong()
  49.  {
  50.    try
  51.    {
  52.      return Long.parseLong(dato());
  53.    }
  54.    catch(NumberFormatException e)
  55.    {
  56.      return Long.MIN_VALUE; // valor más pequeño
  57.    }
  58.  }
  59.  
  60.  public static float datoFloat()
  61.  {
  62.    try
  63.    {
  64.      Float f = new Float(dato());
  65.      return f.floatValue();
  66.    }
  67.    catch(NumberFormatException e)
  68.    {
  69.      return Float.NaN; // No es un Número; valor float.
  70.    }
  71.  }
  72.  
  73.  public static double datoDouble()
  74.  {
  75.    try
  76.    {
  77.      Double d = new Double(dato());
  78.      return d.doubleValue();
  79.    }
  80.    catch(NumberFormatException e)
  81.    {
  82.      return Double.NaN; // No es un Número; valor double.
  83.    }
  84.  }
  85. }
  86.  
  87.  

2.- Esta clase seria la solucion en "si"  :rolleyes:
  • Creamos 2 Vectores, v1 y v2
  • Damos el tamaño de cada vector
  • Los cargamos con datos desde el teclado, utilizando la clase Leer
  • Sumamos cada vector para saber cual es el vector mayor
  • Si la la suma total de cada vector, son iguales--> nos da un mensaje "Suma de totales iguales"
  :(
  • Si a la suma total del vector 1, es mayor la suma total del vector 2.. entonces ste vector sera nuestra "PRIMERA FILA" de la nueva matriz
  • Si a la suma total del vector 2, es mayor la suma total del vector 1.. entonces ste vector sera nuestra "PRIMERA FILA" de la nueva matriz
  • Mostramos la nueva Matriz.!  :silbar:

Código
  1.  
  2. package matriz;
  3. import Utilitarios.Leer;
  4. public class Matriz
  5. {
  6.    //Metodo para calcular la suma de los vectores.
  7.    static public int sumaV(int v[], int tamaño)
  8.    {
  9.        int suma=0;
  10.        for(int i=0; i<tamaño;i++)
  11.        {
  12.            suma+=v[i];
  13.        }
  14.        return suma;        
  15.    }
  16.    public static void main(String[] args)
  17.    {
  18.        int t, suma1, suma2; //Tamaño del vector
  19.        do
  20.        {
  21.            System.out.print("Tamaño --> ");            
  22.            t=Leer.datoInt();
  23.        }while(t<1); //Mientras sea menor q' 1 seguira en el bucle.
  24.  
  25.        System.out.println();
  26.        System.out.println("********* Vector #1 *********\n");
  27.  
  28.        int v1[]= new int[t];//Declaramos y creamos el vector
  29.  
  30.        //Damos valores al vector
  31.        for(int i=0; i<t;i++)
  32.        {
  33.            System.out.print("\t["+i+"] -> ");
  34.            v1[i]=Leer.datoInt();
  35.        }
  36.        //Hacemos la suma Total
  37.        suma1=sumaV(v1,t);
  38.        System.out.println("\n\tSuma Total : "+suma1);        
  39.        System.out.println();
  40.        System.out.println("********* Vector #2 *********\n");
  41.  
  42.        int v2[]= new int[t];//Declaramos y creamos el vector
  43.  
  44.        //Damos valores al vector
  45.        for(int i=0; i<t;i++)
  46.        {
  47.            System.out.print("\t["+i+"] -> ");
  48.            v2[i]=Leer.datoInt();
  49.        }
  50.        //Hacemos la suma Total
  51.        suma2=sumaV(v2,t);
  52.        System.out.println("\n\tSuma Total : "+suma2);  
  53.  
  54.        //Declaracion y creacion de la Matriz
  55.        int matriz[][]= new int[t][t];
  56.        int i,j; //Variables de los bucles
  57.  
  58.        //Comparaciones
  59.        System.out.println("\n****** Comparaciones ******\n");
  60.  
  61.        //Totales iguales
  62.        if(suma1==suma2)
  63.        {
  64.            System.out.println("Las sumas totales son iguales .!");
  65.        }
  66.  
  67.        //La suma del vector 1, es mayor a la suma del vector 2
  68.        if(suma1>suma2)
  69.        {
  70.            System.out.println("Vector 1 es Mayor .!\n");
  71.            for(i=0;i<t;i++)
  72.            {
  73.                for(j=0;j<t;j++)
  74.                {
  75.                     //Fila 0
  76.                    if(i==0)
  77.                    {
  78.                        matriz[i][j]=v1[j];
  79.                        System.out.print("\t "+v1[j]);
  80.                    }
  81.                     //Fila 1
  82.                    if(i==1)
  83.                    {
  84.                        matriz[i][j]=v2[i];
  85.                        System.out.print("\t "+v2[j]);
  86.                    }          
  87.                }
  88.                System.out.println();//para q valla a la sgte fila
  89.            }
  90.        }
  91.  
  92.         //La suma del vector 2, es mayor a la suma del vector 1
  93.        if(suma2>suma1)
  94.        {
  95.            System.out.println("Vector 2 es Mayor .!\n");
  96.            for(i=0;i<t;i++)
  97.            {
  98.                for(j=0;j<t;j++)
  99.                {
  100.                    //Fila 0
  101.                    if(i==0)
  102.                    {
  103.                        matriz[i][j]=v2[j];
  104.                        System.out.print("\t "+v2[j]);
  105.                    }
  106.                    //Fila 1
  107.                    if(i==1)
  108.                    {
  109.                        matriz[i][j]=v1[i];
  110.                        System.out.print("\t "+v1[j]);
  111.                    }
  112.                }
  113.                System.out.println();//para q valla a la sgte fila
  114.            }
  115.        }      
  116.  
  117.        //La Matriz
  118.       System.out.println("********* La Matriz *********\n");
  119.             for(i=0;i<t;i++)
  120.                for(j=0;j<t;j++)
  121.                {
  122.                     //Fila 0
  123.                    if(i==0)
  124.                    {
  125.                        matriz[i][j]=v1[j];
  126.                        System.out.println("\t["+i+"]["+j+"] -> "+v1[j]);
  127.                    }
  128.                     //Fila 1
  129.                    if(i==1)
  130.                    {
  131.                        matriz[i][j]=v2[i];
  132.                        System.out.println("\t["+i+"]["+j+"] -> "+v2[j]);
  133.                    }
  134.                }
  135.    }
  136. }
  137.  
  138.  

 :D

Salu2
7  Programación / Java / Re: [?] Código no tira resultados correctos en: 19 Agosto 2012, 04:02 am
Hola

Tu error esta en "x", por eso sales 100pre el valor de "4.00"
Código
  1.  
  2. String opcion;
  3.        opcion = JOptionPane.showInputDialog("Ingrese figura a calcular:\n"+"1-Rectángulo\n"+"2-Círculo\n"+"0-Salir");
  4.        a=Integer.parseInt(opcion);
  5.        switch(a){
  6.  
  7.            case(1):{
  8.  
  9.                String x; //declaras la variable
  10.                int c;
  11.                x = JOptionPane.showInputDialog("Ingrese dato a calcular:\n"+"1-Perímetro\n"+"2-Área"); //la parte \n"+"1 sta de mas puede ser \n 1-Perimetro
  12.                c = Integer.parseInt(x); // le das a c el valor de x=1 (ejemplo)
  13.                    switch(c){
  14.  
  15.                        case(1):{
  16.                            JOptionPane.showInputDialog("Ingrese largo del rectángulo:");
  17.                            double largo;
  18.                            largo=Double.parseDouble(x);//x sigue valiendo 1, no recepcionas el valor del joption :D
  19.                            JOptionPane.showInputDialog("Ingrese ancho del rectángulo:");
  20.                            double ancho;
  21.                            ancho = Double.parseDouble(x); // x sigue valiendo 1, no recepcionas el valor del joption :D
  22.                            double perimetro;
  23.                            perimetro=(largo*2)+(ancho*2); // 1*2+1*2 --> usas x
  24.                            JOptionPane.showMessageDialog(null, "El perimetro del rectángulo es: " +perimetro);
  25.                        }break;
  26.  

Te paso la solucion

Código
  1. int a;
  2.        String opcion;
  3.        opcion = JOptionPane.showInputDialog("Ingrese figura a calcular: \n 1-Rectángulo \n 2-Círculo\n 0-Salir");
  4.        a=Integer.parseInt(opcion);
  5.        switch(a)
  6.        {
  7.  
  8.            case(1):
  9.            {
  10.                String x;
  11.                int c;
  12.                x = JOptionPane.showInputDialog("Ingrese dato a calcular: \n 1-Perímetro \n 2-Área");
  13.                c = Integer.parseInt(x);
  14.                    switch(c)
  15.                    {
  16.  
  17.                        case 1:
  18.                            String largo,ancho;
  19.                            double perimetro;
  20.                            largo=JOptionPane.showInputDialog("Ingrese largo del rectángulo:");
  21.                            ancho= JOptionPane.showInputDialog("Ingrese ancho del rectángulo:");                            
  22.                            perimetro=2*Double.valueOf(largo)+2*Double.valueOf(ancho);
  23.                            JOptionPane.showMessageDialog(null, "El perimetro del rectángulo es: " +perimetro);
  24.  
  25.                        break;
  26.                        case 2:
  27.                            largo=JOptionPane.showInputDialog("Ingrese largo del rectángulo:");
  28.                            ancho=JOptionPane.showInputDialog("Ingrese ancho del rectángulo:");
  29.                            double area;
  30.                            area = Double.valueOf(largo)*Double.valueOf(ancho);
  31.                            JOptionPane.showMessageDialog(null, "El área del rectángulo es: "+area);
  32.  
  33.                        break;
  34.                    }
  35.  
  36.            }break;
  37.  

Salu2
8  Programación / Java / Re: Qué usar para la interfaz de usuario. en: 25 Julio 2012, 21:24 pm
Hola

Para q' tu interfaz sea amigable, puedes ver algo de Normas CUA
q' define standares de wenas INTERFACEZ

Salu2
9  Programación / Java / [Aporte] Probar funcionamiento de un DSN creado con driver SQLserver en: 20 Julio 2012, 23:11 pm
Hola
 Les dejo algo q' me sirvio para empezar a ver algo de BD's con Java ...!!  >:D
 Todo lo q hace la aplicacion es probar el DSN mostrando el nombre y la version del
 gestor de BD's  :P

 Espero q les sirva de plantilla  ;-)
 
 Importamos las librerias necesarias:

 
Código
  1.  
  2.  import java.awt.*;
  3.  import java.sql.*;
  4.  

 Declaramos e inicialisamos las variables q´vamos a utlizar:

 
Código
  1.  
  2.  private Connection cn= null;
  3.  private DatabaseMetaData meta= null; //para recojer la metadata
  4.  

 Asignamos una posicion al JFrame

 
Código
  1.  
  2.  public FromProbarDSNEjemploBDs()
  3. {
  4.        initComponents();
  5.        setLocation(350,250); //Localizacion
  6.  }
  7.  

 Para cambiar el Icono del cafe de Java, reescribimos este metodo.!
 Nota: http://javax0711.blogspot.com/2009/11/como-cambiar-el-icono-un-jframe.html

 
Código
  1.  
  2.  public Image getIconImage()
  3.  {
  4.       Image retValue=Toolkit.getDefaultToolkit().
  5.                getImage(ClassLoader.getSystemResource("resources/hacker.png"));
  6.       return retValue;
  7.  }
  8.  

 Para indicar q tipo de Driver vamos a utilizar, ponemos la sentencia:

 
Código
  1.  
  2.  //Usa el puente JDBC-ODBC
  3.  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  4.  

 El administrador de Drivres  (DriverManager) del JDBC,  para el caso del puente
 JDBC-ODBC, nos devuelve un Objeto de tipo Connection con el cual se
 apertura el acceso a la BD's

 
Código
  1.  
  2.   cn=DriverManager.getConnection("jdbc:odbc:DSNEjemploBD");
  3.  

 La Metadata  de la BD's es pedida a traves de un Objeto de la clase Connection (cn)
 
 
Código
  1.  
  2.   meta=cn.getMetaData();
  3.  

 El objeto meta de la Clase DatabaseMetaData nos permite obtener el nombre y la
 version del gestor de BD's :
 
 
Código
  1.  
  2.   txaMostrar.setText("\n  Exito en la conexión...!\n");
  3.   txaMostrar.append("\n  DataBase:\t"+meta.getDatabaseProductName());
  4.   txaMostrar.append("\n  version:\t"+meta.getDatabaseProductVersion());
  5.  

 Podemos manipular las Excepciones a traves de un Objeto de la clase Exception:

 
Código
  1.  
  2.   catch(Exception ex)
  3.   {
  4.            txaMostrar.setText("La connecion Fracaso...!! por:\n\n");
  5.            txaMostrar.append(ex.toString());
  6.   }
  7.  


 Les dejo el codigo completo:
 
Código
  1.  
  2. import java.awt.*;
  3. import java.sql.*;
  4.  
  5. public class FromProbarDSNEjemploBDs extends javax.swing.JFrame
  6. {
  7.    private Connection cn= null;
  8.    private DatabaseMetaData meta= null;
  9.  
  10.    public FromProbarDSNEjemploBDs()
  11.    {
  12.        initComponents();
  13.        setLocation(350,250);
  14.    }
  15.  
  16.    public Image getIconImage()
  17.    {
  18.        Image retValue=Toolkit.getDefaultToolkit().
  19.                getImage(ClassLoader.getSystemResource("resources/hacker.png"));
  20.        return retValue;
  21.    }
  22.  
  23.    @SuppressWarnings("unchecked")
  24.    // <editor-fold defaultstate="collapsed" desc="Generated Code">
  25.    private void initComponents() {
  26.  
  27.        btnProbarDSNEjemploBD = new javax.swing.JButton();
  28.        jScrollPane1 = new javax.swing.JScrollPane();
  29.        txaMostrar = new javax.swing.JTextArea();
  30.        jLabel1 = new javax.swing.JLabel();
  31.  
  32.        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  33.        setTitle("ElHacker.net ");
  34.        setIconImage(getIconImage());
  35.        setResizable(false);
  36.  
  37.        btnProbarDSNEjemploBD.setText("Probar DSNEjemploBD");
  38.        btnProbarDSNEjemploBD.addActionListener(new java.awt.event.ActionListener() {
  39.            public void actionPerformed(java.awt.event.ActionEvent evt) {
  40.                btnProbarDSNEjemploBDActionPerformed(evt);
  41.            }
  42.        });
  43.  
  44.        txaMostrar.setColumns(20);
  45.        txaMostrar.setRows(5);
  46.        jScrollPane1.setViewportView(txaMostrar);
  47.  
  48.        jLabel1.setText("Horny3");
  49.  
  50.        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  51.        getContentPane().setLayout(layout);
  52.        layout.setHorizontalGroup(
  53.            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  54.            .addGroup(layout.createSequentialGroup()
  55.                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  56.                    .addGroup(layout.createSequentialGroup()
  57.                        .addGap(103, 103, 103)
  58.                        .addComponent(btnProbarDSNEjemploBD))
  59.                    .addGroup(layout.createSequentialGroup()
  60.                        .addGap(26, 26, 26)
  61.                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
  62.                            .addComponent(jLabel1)
  63.                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 291, javax.swing.GroupLayout.PREFERRED_SIZE))))
  64.                .addContainerGap(30, Short.MAX_VALUE))
  65.        );
  66.        layout.setVerticalGroup(
  67.            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  68.            .addGroup(layout.createSequentialGroup()
  69.                .addContainerGap()
  70.                .addComponent(btnProbarDSNEjemploBD)
  71.                .addGap(18, 18, 18)
  72.                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 167, javax.swing.GroupLayout.PREFERRED_SIZE)
  73.                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  74.                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 34, Short.MAX_VALUE))
  75.        );
  76.  
  77.        pack();
  78.    }// </editor-fold>
  79.  
  80.    private void btnProbarDSNEjemploBDActionPerformed(java.awt.event.ActionEvent evt) {
  81.        // TODO add your handling code here:
  82.        try
  83.        {
  84.            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  85.            cn=DriverManager.getConnection("jdbc:odbc:DSNEjemploBD");
  86.            meta=cn.getMetaData();
  87.            txaMostrar.setText("\n  Exito en la conexión...!\n");
  88.            txaMostrar.append("\n  DataBase:\t"+meta.getDatabaseProductName());
  89.            txaMostrar.append("\n  version:\t"+meta.getDatabaseProductVersion());
  90.            cn.close();
  91.        }
  92.        catch(Exception ex)
  93.        {
  94.            txaMostrar.setText("La connecion Fracaso...!! por:\n\n");
  95.            txaMostrar.append(ex.toString());
  96.        }
  97.    }
  98.  
  99.    public static void main(String args[]) {
  100.        java.awt.EventQueue.invokeLater(new Runnable() {
  101.            public void run() {
  102.                new FromProbarDSNEjemploBDs().setVisible(true);
  103.            }
  104.        });
  105.    }
  106.  
  107.    // Variables declaration - do not modify
  108.    private javax.swing.JButton btnProbarDSNEjemploBD;
  109.    private javax.swing.JLabel jLabel1;
  110.    private javax.swing.JScrollPane jScrollPane1;
  111.    private javax.swing.JTextArea txaMostrar;
  112.    // End of variables declaration
  113.  
  114.  }
  115.  

Saludos
Horny3
10  Programación / Java / [Aporte] Probar funcionamiento de un DSN creado con driver SQLserver en: 20 Julio 2012, 22:49 pm
Hola
 Les dejo algo q' me sirvio para empezar a ver algo de BD's con Java ...!!  >:D
 
 Importamos las librerias necesarias:

 
Código
  1.  import java.awt.*;
  2.  import java.sql.*;
  3.  

 Declaramos e inicialisamos las variables q´vamos a utlizar:

 
Código
  1.  private Connection cn= null;
  2.  private DatabaseMetaData meta= null;
  3.  

 Asignamos una posicion al JFrame

 
Código
  1.  public FromProbarDSNEjemploBDs()
  2. {
  3.        initComponents();
  4.        setLocation(350,250); //Localizacion
  5.  }
  6.  

 Para cambiar el Icono del cafe de Java, reescribimos este metodo.!
 Nota: Les dejo la URL q segui en esta parte 
http://javax0711.blogspot.com/2009/11/como-cambiar-el-icono-un-jframe.html

 
Código
  1.  public Image getIconImage()
  2.  {
  3.       Image retValue=Toolkit.getDefaultToolkit().
  4.                getImage(ClassLoader.getSystemResource("resources/hacker.png"));
  5.       return retValue;
  6.  }
  7.  
Saludos
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines