[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
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
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
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
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
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








luis dice:
Octubre 2nd, 2008 a las 2:54 pm
hola a todos tengo un aggrelo en bluej donde lo lo llegon con objetos de la clas epersona las cuales con alumno y profesor , en que los alumnos estan clasificados como alumno nuevo,alumno regular , y alumno apunto de agresar, en el caso de los profesores algo similar, pero el punto es que tengo que aser un metodo que me calcule la cantidad de alumnos y otro para la cantidad de profesores, ademas saber cuantos slumnos y profesores ay de cada categoria y ademas calcular el promedio en total de todas las personas
luis dice:
Octubre 2nd, 2008 a las 2:55 pm
me podrian dar una idea
Jose Sebastian dice:
Octubre 14th, 2008 a las 12:51 pm
bueno espwero qme manden el programa soy estudiante del idat pero necesito el programapara podef facilitar mi aprendizaje espero q haguen loz puedan byee cuidenzee..
Ezpero su respuesta pronto o mejor mandenlo en mensaje a mi msn linkin_metall_1914@hotmail.com
o me llaman a mi numero claro es 991703585
Peter dice:
Octubre 15th, 2008 a las 6:52 pm
Es una pagina muy buena me ha ayudado a crear muchos ejemplos parecidos en JDeveloper 10g (java)espero seguir contando con su ayuda en algun momento y q siguan colgando más ejemplos
Enriqe dice:
Octubre 24th, 2008 a las 7:17 pm
Muchas gracias por todo , le has dado un punto nuevo a mis perspectivas ..
BETO dice:
Noviembre 4th, 2008 a las 1:20 am
basica y buena la pagina
salu2
ernesto_karim dice:
Noviembre 9th, 2008 a las 3:09 pm
muy buenos los ejemplos pero lo que necesito ahora es que me digan como meter cadenas a un arreglo asi como manipularlas tambien, hacer comparaciones, de ahi en mas bueno saludos a todos
TONYLITTLE dice:
Noviembre 20th, 2008 a las 12:38 pm
Hola me gustaria que me ayudasen con un programa que sume la diagonal de una matriz llenada por el usuario (matriz de 5×5) se les agradeceria mucho majos…