Unidad 4 Lenguaje de Programacion Java Parte 3
Unidad 4 Lenguaje de Programacion Java Parte 3
Lenguaje de Programación
Orientado a Objetos JAVA
Parte 3
1
CONTENIDO
•Introducción a los arreglos
•Arreglos numéricos unidimensionales
– Declarar un arreglo
– Crear un arreglo
– Iniciar un arreglo
•Cadenas de caracteres como un arreglo
•La clase Arrays y sus métodos
•Arreglos multidimensionales
2
Introducción a los arreglos
• Un arreglo es una estructura homogénea, compuesta por varios elementos, todos del
mismo tipo y almacenados consecutivamente en memoria. Cada elemento puede ser
accedido directamente por el nombre de la variable arreglo seguido de uno o más
subíndices encerrados entre corchetes.
Arreglo
m
3
Introducción a los arreglos
m[0] m[1] m[2] m[3] m[4] m[5] m[6] m[7] m[8]
Vector m
Crear un vector.
• Significa reservar la cantidad de memoria necesaria para
contener todos sus elementos y asignar al nombre del vector una
referencia a ese bloque.
• El hecho de usar el operador new significa que Java implementa
los vectores como objetos.
• Ejemplos:
m = new int[10];
temperatura = new float[31];
ordenador = new Cordenador[25];
7
•Es bastante común declarar y crear un vector en una misma línea.
•Ejemplos:
int[] m = new int[10];
Iniciar un vector
•Un vector es un objeto; por lo tanto, cuando es creado, sus
elementos son iniciados automáticamente.
•Si el vector es numérico, sus elementos son iniciados a 0 y si no es
numérico a un valor análogo al 0.
•Ejemplos:
char[] c= new char[10]; // iniciados al valor ‘\u0000’
boolean[] b= new boolean[10]; //iniciados a false
Cliente[] clientes=new Cliente[10];
//las referencias a objetos, iniciados a null.
8
•Para iniciar un vector con otros valores diferentes a los
predeterminados, se hace de la siguiente forma:
float[] temperaturas = {10.2F, 12.3F, 3.4F, 14.5F, 15.6F,
16.7F};
Este ejemplo crea un vector temperatura de tipo float con tantos
elementos como valores se hayan especificado entre llaves.
10
Métodos de un vector.
•La clase genérica ‘Arrays’ proporciona un conjunto de métodos que
ha heredado de la clase Object del paquete java.lang.
•Métodos destacables:
equals: permite verificar si dos referencias se refieren a
un mismo objeto y
clone: permite duplicar un objeto.
11
• Ejemplo: Crea e inicializa un vector de enteros, crea una
copia del vector y luego las compara.
import java.util.Scanner;
public class Cadenas{
public static void main(String [] args) throws IOException{
Scanner miEntrada = new Scanner(System.in);
String [] nombres;
nombres = new String [5];
System.out.println("Escriba 5 nombres:");
for (int i=0; i<5; i++)
nombres[i]=miEntrada.nextLine();
class BusquedaArreglo
{
public static void main ( String [] args )
{
int arreglo[], num;
String numero, result, busq;
boolean respuesta=true;
//crear arreglo y llenarlo con enteros
// pares de 0 a 198
arreglo = new int[100];
16
public static int busquedaLineal ( int arreglo2[], int clave )
{
//iterar a traves de los elementos del arreglo
for ( int c=0; c < arreglo2.length; c++ )
//si el elemento del arreglo es igual al valor
//de la clase, devolver ubicacion
if ( arreglo2 [c] == clave )
return c;
return -1; //clave no encontrada
} //fin de busquedaLineal
} //fin de aplicacion
17
Cadenas de caracteres
• Las cadenas de caracteres en Java son objetos de la
clase String.
19
Ejercicio
• Realizar un programa que lea una cadena de n
caracteres e imprima el resultado que se
obtiene cada vez que se realice una rotación
de un carácter a la derecha sobre dicha
cadena. El proceso finalizará cuando se haya
obtenido nuevamente la cadena de caracteres
original. Ejemplo:
HOLA AHOL LAHO OLAH HOLA
20
Clase Arrays y sus métodos
24
Clase Arrays: método sort
25
import java.util.Arrays;
import javax.swing.JOptionPane;
public class AplicacionClaseArray {
public static void main(String []args) {
int[] m1 = {20, 15, 8, 3, 30, 26, 42, 1, 50};
Arrays.sort(m1);
for (int cont=0; cont<9; cont++)
System.out.println(m1[cont]);
String a=JOptionPane.showInputDialog("Numero a
buscar en el arreglo");
int b=Integer.parseInt(a);
int y=Arrays.binarySearch(m1,b);
if (y<0)
JOptionPane.showMessageDialog(null,"El valor
"+b+" no se encuentra en el arreglo");
else
JOptionPane.showMessageDialog(null,"El valor "+b+" se
encuentra en la posición "+y+" del arreglo");
System.exit(0);
}
} 26
Arreglos Multidimensionales
• Java no soporta directamente el uso de
arreglos multidimensionales, pero sí permite
al programador especificar arreglos
unidimensionales cuyos elementos sean
también arreglos unidimensionales.
27
Arreglos Multidimensionales
0 1 2
0 012 0 01
0
012 012 1
1 1
2
2 012 2 0 3
3 012 3 012
31
Ejemplo: Arreglo bidimencional de enteros
import java.io.*;
public class MatrizEnteros {
public static void main (String [] args) throws IOException {
InputStreamReader isr = new
InputStreamReader(System.in);
BufferedReader MiFlujo = new BufferedReader(isr);
String Dato;
int [ ][ ] Números = new int[5][3];
System.out.println("digite los números: ");
for (int i=0; i<5; i++) {
System.out.println("Fila "+(i+1)+" : ");
for (int j=0; j<3;j++) {
Dato = MiFlujo.readLine();
Números[i][j] = Integer.parseInt(Dato);
} //fin de for j
32
} //fin de for i
for (int i=0; i<5; i++)
{
System.out.println();
for (int j=0; j<3;j++)
System.out.print(Números[i][j]+" " );
}
} //fin de main
} //fin de la clase
33
Ejemplo: Inicializa dos matrices de enteros y las
imprime por filas
import javax.swing.*;
System.exit( 0 );
} 34
public static void crearSalida (int arreglo[ ][ ], String s )
{
//iterar a traves de las filas del arreglo
for ( int fila = 0; fila < arreglo.length; fila ++ )
{
for (int col = 0; col < arreglo[fila].length; col ++ )
{
s = s+arreglo[fila][col];
s = s+" ";
}
s = s+"\n";
}
JOptionPane.showMessageDialog(null, s,
"Impresion Arreglo",
JOptionPane.INFORMATION_MESSAGE);
} //fin del método crearSalida
} //fin de la aplicacion
35