gentoo linux, java, software libre y otras hierbas
dic, 05 2007 - 12:45 pm

[código] Arreglos (arrays) en Java (1)

Los arreglos en Java son objetos, demostrando el compromiso de Java con la orientación a objetos. En esta sección se encuentran diversos ejemplos de arreglos unidimensionales y multidimensionales, y se exponen las manipulaciones más comunes de estos. También el proceso de pasar arreglos a métodos y las técnicas elementales para ordenar y realizar búsquedas, junto con la presentación de la búsqueda binaria como una mejora sobre la búsqueda lineal. Veámos algunos ejemplos:

Creación de un arreglo

// Creación de un arreglo.
import javax.swing.*;

public class InicArreglo {

   public static void main( String args[] )
   {
      int arreglo[];            // declarar la referencia a un arreglo

      arreglo = new int[ 10 ];  // crear el arreglo

      String salida = "Índice\tValor\n";

      // anexar el valor de cada elemento del arreglo al String salida
      for ( int contador = 0; contador < arreglo.length; contador++ )
         salida += contador + "\t" + arreglo[ contador ] + "\n";

      JTextArea areaSalida = new JTextArea();
      areaSalida.setText( salida );

      JOptionPane.showMessageDialog( null, areaSalida,
         "Inicialización de un arreglo de valores int",
         JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );

   } // fin de main

} // fin de la clase InicArreglo

Descargar código fuente

Inicialización de un arreglo con los enteros pares del 2 al 20

// Inicialización de un arreglo con los enteros pares del 2 al 20.
import javax.swing.*;

public class Inic2Arreglo {

   public static void main( String args[] )
   {
      final int LONGITUD_ARREGLO = 10;    // constante
      int arreglo[];                    // referencia a un arreglo int

      arreglo = new int[ LONGITUD_ARREGLO ];  // crear el arreglo

      // calcular el valor para cada elemento del arreglo
      for ( int contador = 0; contador < arreglo.length; contador++ )
         arreglo[ contador ] = 2 + 2 * contador;

      String salida = "Índice\tValor\n";

      for ( int contador = 0; contador < arreglo.length; contador++ )
         salida += contador + "\t" + arreglo[ contador ] + "\n";

      JTextArea areaSalida = new JTextArea();
      areaSalida.setText( salida );

      JOptionPane.showMessageDialog( null, areaSalida,
         "Inicialización con enteros pares del 2 al 20",
         JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );

   } // fin de main

} // fin de la clase InicArreglo

Descargar código fuente

Sumar el total de los valores de los elementos de un arreglo

// Sumar el total de los valores de los elementos de un arreglo.
import javax.swing.*;

public class SumarArreglo {

   public static void main( String args[] )
   {
      int arreglo[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
      int total = 0;

      // sumar el valor de cada elemento al total
      for ( int contador = 0; contador < arreglo.length; contador++ )
         total += arreglo[ contador ];

      JOptionPane.showMessageDialog( null,
         "Total de elementos del arreglo: " + total,
         "Sumar los elementos de un arreglo",
         JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );

   } // fin de main

} // fin de la clase SumarArreglo

Descargar código fuente

Programa para imprimir histogramas

// Programa para imprimir histogramas.
import javax.swing.*;

public class Histograma {

   public static void main( String args[] )
   {
      int arreglo[] = { 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 };

      String salida = "Elemento\tValor\tHistograma";

      // para cada elemento del arreglo, mostrar una barra en el histograma
      for ( int contador = 0; contador < arreglo.length; contador++ ) {
         salida += "\n" + contador + "\t" + arreglo[ contador ] + "\t";

         // imprimir barra de asteriscos
         for ( int estrellas = 0; estrellas < arreglo[ contador ]; estrellas++ )
            salida += "*";

      } // fin de instrucción for externa

      JTextArea areaSalida = new JTextArea();
      areaSalida.setText( salida );

      JOptionPane.showMessageDialog( null, areaSalida,
         "Programa para imprimir histogramas", JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );

   } // fin de main

} // fin de la clase Histograma

Descargar código fuente

Simulación del lanzamiento de una dado utilizando arreglos

// Tirar un dado de seis lados 6000 veces.
import javax.swing.*;

public class TirarDadoArr {

   public static void main( String args[] )
   {
      int frecuencia[] = new int[ 7 ];

      // tirar un dado 6000 veces; usar el valor del dado como índice de frecuencia
      for ( int tiro = 1; tiro <= 6000; tiro++ )
         ++frecuencia[ 1 + ( int ) ( Math.random() * 6 ) ];  

      String salida = "Cara\tFrecuencia";

      // anexar frecuencias al String salida
      for ( int cara = 1; cara < frecuencia.length; cara++ )
         salida += "\n" + cara + "\t" + frecuencia[ cara ];

      JTextArea areaSalida = new JTextArea();
      areaSalida.setText( salida );

      JOptionPane.showMessageDialog( null, areaSalida,
         "Tirar un dado 6000 veces", JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );

   } // fin de main

} // fin de la clase TirarDado

Descargar código fuente

Simulación de votación de estudiantes utilizando arreglos

// Programa de votación de los estudiantes.
import javax.swing.*;

public class VotacionEstudiantes {

   public static void main( String args[] )
   {
      int respuestas[] = { 1, 2, 6, 4, 8, 5, 9, 7, 8, 10, 1, 6, 3, 8, 6,
         10, 3, 8, 2, 7, 6, 5, 7, 6, 8, 6, 7, 5, 6, 6, 5, 6, 7, 5, 6,
         4, 8, 6, 8, 10 };
      int frecuencia[] = new int[ 11 ];

      // para cada respuesta, seleccionar el elemento de respuestas y usar ese valor
      // como índice en frecuencia para determinar el elemento a incrementar
      for ( int respuesta = 0; respuesta < respuestas.length; respuesta++ )
         ++frecuencia[ respuestas[ respuesta ] ];

      String salida = "Calificación\tFrecuencia\n";

      // anexar frecuencias al String salida
      for ( int calificacion = 1; calificacion < frecuencia.length; calificacion++ )
         salida += calificacion + "\t" + frecuencia[ calificacion ] + "\n";

      JTextArea areaSalida = new JTextArea();
      areaSalida.setText( salida );

      JOptionPane.showMessageDialog( null, areaSalida,
         "Programa de votación de estudiantes", JOptionPane.INFORMATION_MESSAGE );

      System.exit( 0 );

   } // fin de main

} // fin de la clase VotacionEstudiantes

Descargar código fuente

Los ejercicios utilizados en este post están basados en ejemplos del libro Cómo programar en Java de Deitel, y por lo tanto están bajo la licencia que esta editorial disponga.

170 Comentarios | deja el tuyo

2 enlaces entrantes

168 Comentarios en “[código] Arreglos (arrays) en Java (1)”

  1. ricardo lopez dice:

    eyy muchachos dejense de pendejadas!!!!!!!!!!!

    ptm con ustedes):

  2. joker666 dice:

    ellll diestra esta bn bueno papasito mmmmm!!!♥

  3. ricardo lopez dice:

    pagina aburrida teamo rodrigo.

  4. riestra dice:

    el ricardo, el rodrigo y el emmanuel estan bn buenoos ♥.♥

  5. richard dice:

    eeee riestra dejate de mamadas wei!!

  6. Riestra dice:

    perdoon ;$ ♥________♥

  7. Riestra dice:

    el pitufo esta bn bueno ♥_______♥ ;$

  8. elvergudo algo bn dice:

    ok riestra te perdono porke estan bn chulo nomas keitale la h

  9. Riestra dice:

    Graseaaas! ily! ♥

  10. rozalva dice:

    auxilio
    soy primeriza en java y necesito hacer un programa donde me ordene los numeros de mayor a menor o biseversa alguien podria ayudarme graxias

  11. monchis dice:

    todos estan buenos y esta pag tambien

  12. Randall dice:

    Justo lo que estaba buscando, entendi perfectamente. Muchas gracias.

  13. Vanessa dice:

    como puedo desplegar un vector de 5 posiciones de valores enteros. Los valores de este vector deben ser generados aleatoriamente???

  14. Ante estos programas debe existir threads para sincronizar las funciones y pueden ser aleatorios. Debe tener en cuenta que los errores pueden ser detectados y eliminados por el sistema.

  15. Buenas noches amigos de la tecnología, la ingeniería y construcción, es un placer saludarlos. A través de tiempo he ido desarrollando varios trabajos que involucran el proceso educativo. Me gustaría aprender de ustedes a orientar objetos con el java interactivo en la modelación de objetos. Para UML ¿Cómo es posible? Cordialmente: Gustavo Salazar Longas

¡Déjanos tu comentario!