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





quisiera que hicieran un progrma de arreglos bidimensionales pero lleven datos como nombre edad apellido y que se consulten por claves
alguien puede ayudarme hacer una etructura de codigos en java con con una matris d algo asi matriz[][][]
por favor mandenme un manual en PDF para aprender a programar en java netbeans , se los suplico, muchas gracias
Hola amigo solo para aclararte, netbeans solo es un IDE, java en si es el lenguaje de programación.
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]
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
}
}
gracias estan muy buenos, un ejenplo de crear y construir un array de enteros quiciera saver para aprender, gracias
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.
como ago esto encolar la siguiente exprecion ((8*2)+(7*2))-(6+5) al desencolar salga el resultado .
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..
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);
}
}
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
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.
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
Hola tengo problemas con Systax para publicar código en mi blog, ¿ podrías ayudarme por favor?
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!
HOLA POR FAVOR QUIERO QUE ME RESUELVAN EL PROGRAMA QUE ESCRIBO SI ES PARA EL EXAMEN
La práctica hace al maestro….
No esperes que los demás resuelvan las cosas por ti.