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.

158 Comentarios | deja el tuyo

2 enlaces entrantes

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

  1. an dice:

    quisiera que hicieran un progrma de arreglos bidimensionales pero lleven datos como nombre edad apellido y que se consulten por claves

  2. Israell dice:

    alguien puede ayudarme hacer una etructura de codigos en java con con una matris d algo asi matriz[][][]

  3. ADOLFO dice:

    por favor mandenme un manual en PDF para aprender a programar en java netbeans , se los suplico, muchas gracias

  4. josé dice:

    hola me pueden ayudar con un codigo porfa dice asi REALIZA UN PROGRAMA EN JAVA, QUE SAQUE EL PROMEDIO DE UN ARREGLO ESTÁTICO DE LOS SIGUIENTES ENTEROS [10,5,2,3,7,1,9,19,18,45]

    • Felipe dice:

      es sencillo josé debes tener algo como esto en tu main…

      public class Main {

      public static void main(String[] args) {

      int arregloEstatico [] = {10,5,2,3,7,1,9,19,18,45};
      //se define el arreglo estático
      double sumaDeValoresArreglo = 0;
      //aqui se almacenará la suma de los valores del arreglo

      for (int contador = 0; contador < arregloEstatico.length; contador ++){
      //recorremos el arreglo desde la posicion cero hasta la ultima posicion
      sumaDeValoresArreglo += arregloEstatico [contador];
      // a sumDeValores le asignamos y le sumamos las posiciones del arreglo
      }

      double promedio = 0;

      promedio = sumaDeValoresArreglo/ arregloEstatico.length;
      //le asignamos a promedio la division de la suma de todos los valores del arreglo entre el tamaño del arreglo
      System.out.println(promedio);
      //imprimimos en consola el promedio

      }

      }

  5. milton dice:

    gracias estan muy buenos, un ejenplo de crear y construir un array de enteros quiciera saver para aprender, gracias

  6. 1. Hacer la lectura definida de Variables y Operaciones.
    2. Utilizar el ejemplo de la lectura, compilarlo y ejecutarlo.
    3. Modificar el ejemplo anterior para practicar las operaciones.
    4. Practicar haciendo un applet llamado ConversionApplet.html que despliegue 30 grados centígrados y calcule y despliegue los grados Fahrenheit correspondientes, utilizando internamente un cálculo para la conversión.

  7. jose dice:

    como ago esto encolar la siguiente exprecion ((8*2)+(7*2))-(6+5) al desencolar salga el resultado .

  8. saulcas dice:

    kisiera qu me ayuden con este ejercicio; codigo en java:
    Realizar un programa que permita ingresar datos numéricos, hallar el mayor, la suma de los datos y la suma de los números pares…..les agradecere mucho..

    • jhony dice:

      package edu.unsch.efpis;
      import java.util.Scanner;
      public class programa1 {

      public static void main(String[] args) {
      int i = 2;
      int ma=0;
      Scanner entrada= new Scanner(System.in);
      System.out.println(“INGRESE cuantos numeros desea comparar:”);
      int num = entrada.nextInt();
      System.out.println(“INGRESE el primer numero “);

      int num2 = entrada.nextInt();
      ma=num2;

      while( i ma){
      ma=x;
      }

      ma= ma;
      }
      System.out.println(“el numero mayor de los ” +num + ” numeros es = ” +ma);
      }

      }

  9. jhony dice:

    esto es para entrar ·n·numeros por teclado y encontrar el mayor saul pero agregale hay no mas con: while num2%20
    num+=num y para la suma le pones n +=numesto al inicio namas
    y ya ta ingeniatela

  10. ivan dice:

    alguien que me pudiera ayudar a desarrollar este programa

    Desarrolla un programa que lea un vector de 20 números, nos diga cuales números se repiten más de 5 veces, usando un método para leer el vector, y otro para realizar las operaciones y mostrar los resultados desde el método main.

  11. fernando dice:

    Mediante un arreglo se lean diez números y muestre los números que son duplicados de los que están en la lista ejemplo: digito (3,7,10,15,20,22,44,50,100,105) de estos los dobles son 20, 44 y 100

    no se como hacer el porgrama

  12. Anibal dice:

    Hola tengo problemas con Systax para publicar código en mi blog, ¿ podrías ayudarme por favor?

  13. Anibal dice:

    Hola tengo un problema al publicar codigo java en mi blog usando Syntax, en un codigo especifico se pierde el formato y se desordena todo al momento de publicar.

    Cuando escribo mi entrada en html, escribo este codigo entre las etiquetas del syntax:

    //Archivo: OArreglos.java

    public class OArreglos{

    public static void main(String args[]){

    //CREACION DEL ARREGLO
    int numeros[] = new int[5];

    //INSERTAR DATOS AL ARREGLO
    numeros[0]=10;
    numeros[1]=20;
    numeros[2]=30;
    numeros[3]=40;
    numeros[4]=50;

    //IMPRIMIR ELEMENTOS DEL ARREGLO
    System.out.println(“Indice\tValor”);
    for(int contador=0; contador<numeros.length; contador++)
    System.out.println(contador+"\t"+numeros[contador]);

    //SUMAR ELEMENTOS DEL ARREGLO
    System.out.println();
    int suma;
    suma=numeros[0]+numeros[1]+numeros[2]+numeros[3]+numeros[4];
    System.out.println("La suma del arreglo es: "+suma);
    }
    }

    y al momento de publicarlo se desordena y queda asi como esta en mi blog:

    http://esteesunblogmasdepruebas.blogspot.com/

    al parecer, por lo que he observado creo que el problema se genera en esta linea:

    for(int contador=0; contador<numeros.length; contador++)

    y en especial en la instruccion: numeros.length

    Al momento de pulsar el boton de "publicar" me bota el siguiente mensaje:

    "Su HTML no es aceptable: La etiqueta no es correcta. : NUMEROS.LENGTH; Omitir advertencia"

    y le doy clic en omitir advertencia, ¿que hago?

    te agradeceria tu ayuda cuanto antes, saludos!

  14. MAICOL GARCIA dice:

    HOLA POR FAVOR QUIERO QUE ME RESUELVAN EL PROGRAMA QUE ESCRIBO SI ES PARA EL EXAMEN

¡Déjanos tu comentario!