Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 5 Cadenas Arrays
Tema 5 Cadenas Arrays
ArrayList
Arrays y cadenas de
caracteres (String)
Tanto los arrays como las cadenas son tipos
de objetos privilegiados en Java ya que
existen facilidades que simplifican su manejo
Por ejemplo se proporcionan primitivas que
simplifican su creación y su inicialización
La clase String se incluye en el API estándar
de Java dentro del paquete básico java.lang
String
Se puede:
String s = “Hola”;
Es equivalente a:
String s;
s= new String(“Hola”);
Comparación de cadenas
Con equals() se sabe si dos cadenas son
iguales
Con == se comparan referencias
Se diferencia entre mayúsculas y minúsculas
Con equalsIgnoreCase() no se diferencia
entre mayúsculas y minúsculas
Con compareTo() se obtiene <0, 0, ó >0
según el argumento sea menor, igual o
mayor que la cadena
Con toLowerCase() y con toUpperCase() se
convierte una cadena a minúculas o
mayúsculas respectivamente
Java Arrays y Cadenas 14
Operaciones con cadenas
Se pueden concatenar con el operador +
Es el único operador sobrecargado en Java
saludo = saludo + “ que tal”;
Cuando se concatenan cadenas se realiza copia de
los operandos
Una cadena se puede concatenar con cualquier
otro valor de otro tipo de datos
Con charAt(indice ) se obtiene el carácter
situado en la posición índice de la cadena
La primera posición de una cadena, si existe, es la
posición 0
Tiene otros muchos métodos de utilidad =>
consultar en laJava
API de Java
Arrays y Cadenas 15
El método toString()
Sirve para convertir un objeto en un String.
Sirve para convertir un tipo básico a String.
La clase Object define un método toString(), por
defecto, que retorna el nombre de la clase y la
dirección de su puntero. Normalmente no es muy
útil por lo que suele estar sobrescrita.
Método toString
public class
public class Punto
Punto {{
int x;
int x; int y;
int y;
public Punto(int
public Punto(int x,x, int
int y)
y) {{
this.x == x;
this.x x; this.y
this.y == y;
y;
}}
public String
public String toString()
toString() {{
return “Punto[“ ++ xx ++ ”,”
return “Punto[“ ”,” ++ yy +”]”;
+”]”;
}}
public static
public static void
void main(String
main(String args[])
args[]) {{
Punto punto
Punto punto == new
new Punto(2,3);
Punto(2,3);
System.out.println( "visualizar
System.out.println( "visualizar datos
datos
del punto”+
del punto”+ punto
punto );}}
);}}
Ejercicio
Re escribir
el método
toString()
de
Rectangulo
Clases envolvente
Permiten representar tipos básicos de datos, como
objetos.
Tipo de dato básico Clase e nvolve nte
boolean Boolean
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Java Double
Arrays y Cadenas 22
Clases envolvente
Cada tipo primitivo Java tiene su correspondiente
envolvente (wapper class) en le paquete java.lang.
Cada objeto de la clase envolvente encapsula un
valor primitivo simple.
El objeto de clase envolvente se construye pasando
el valor al constructor apropiado. Por ejemplo:
Clases envolvente
Integer i = new Integer(7) Integer
intValue()
i
longValue() 7 doubleValue()
floatValue()
Arrays
Colección de variables todas del mismo tipo
Tamaño fijo
Pueden ser variables simples o referencias a objetos
Declaración de variables array: dos
alternativas
tipoValor [] variableArray;
tipoValor variableArray [];
Array de tipos básicos de datos
int vector[]; // vector es un array de enteros
int [] vector; // igual que la declaración anterior
int vector[10]; // ERROR: no se especifica el tamaño
en la declaración
iArray
0 0 0
iArray[1]
iArray[0] iArray[2]
Arrays
Definición: reserva de la memoria para
el array
Antes de usarse, un array tiene que
crearse (con new):
intvector[] = new int[10]; // array de 10 enteros:
vector[0]..vector[9]
En este momento se especifica el tamaño
del array (que no forma parte del tipo de
datos)
empArray
null
null
null 9
Arrays
Se puede especificar una lista de inicialización
int[] arrayNumeros = { 147, 323, 89 };
No se utiliza el operador new y no se especifica el tamaño
Es equivalente a:
int[] arrayNumeros;
arrayNumeros= new int [3];
arrayNumeros[0]=147;
arrayNumeros[1]=323;
arrayNumeros[2]=89;
Arrays multidimensionales
Inicialización mediante listas
int[][] array = { {79, 87, 94, 82, 67}, {98, 87, 81, 74, 91} };
array
79 87 94 82 67 98 87 81 74 91
0,0 0,1 0,2 0,3 0,4 1,0 1,1 1,2 1,3 1,4
Arrays
Límites de los arrays
Todos los vectores empiezan por 0.
El número de elementos del vector se almacena
en el atributo length del propio vector.
Un array no se puede redimensionar
Se puede utilizar la misma variable referencia
para apuntar a otro vector diferente:
int elements [ ] = new int [6];
elements = new int [10];
Ejercicio 3: conjunto de
Enteros
Define la clase ConjuntoDeEnteros para tratar con
conjuntos de números enteros comprendidos entre 0 y 100.
Para representar estos conjuntos se usa un array de
booleanos. Además del constructor, la clase debe incluir los
siguientes métodos públicos:
a. boolean pertenece(int e), que averigua si e pertenece al conjunto
b. void añade(int e), que añade e al conjunto
c. void elimina(int e), que elimina e del conjunto, si estaba; en otro caso,no
hace nada
d. void imprimeConjunto(), que imprime los elementos del conjunto
e. boolean equals(CojuntoDeEnteros c), que averigua si dos conjuntos son
iguales
f. void union(ConjuntoDeEnteros c), que calcula la unión de dos conjuntos
y deja el resultado en el conjunto que recibe el mensaje
Java Arrays y Cadenas 42
Ejercicio 3: conjunto de Enteros
Ejercicio:
conjunto
de
Enteros
Ejercicio:
Correo
Ejercicio:
Buzón
La clase Vector
...
addElement(o:Object)
capacity():int
elementAt(i:int):Object
removeAllElements()
remove(o:Object):boolean
toString():String
...
Java Arrays y Cadenas 52
La clase Vector
La clase Vector proporciona métodos para
trabajar con vectores dinámicos de
elementos de diferentes tipos.
clase Vector en
documentación de Java
http://download.oracle.com/javase/6/docs/api/
Constructores de la clase
Vector
public Vector () - construye un vector vacío
public Vector (int initialCapacity) - construye un
vector vacío de una determinada capacidad
public Vector (int initialCapacity, int
capacityIncrement) - Construye un vector vacío,
con una capacidad determinada y un valor de
capacityIncrement determinada
Recorrido de un Vector
Vector lines = new Vector();
....
// imprime los elementos del vector
for (int i=0; i<lines.size(); ++i){
System.out.println(lines.elementAt(i));
}
Object
implements
I
Iterator
implements
iterator()
hasNext()
Iterator Object
next()
Java Arrays y Cadenas 67
Interface Iterator
void imprimeTodos(){
Iterator<Correo> e=v.iterator();
while( e.hasNext())
System.out.println( e.next());
}
...
} Java Arrays y Cadenas 69
Balanced
TreeSet TreeMap
Tree
Resizable
Array
ArrayList
Linked
List
LinkedList
Vector
Synchronized hashTable
Stack
Java Arrays y Cadenas 70
Ejercicio 5: Buzón con Vector
Ejercicio 7: Banco
c. void eliminaCuenta(int clave), que elimina la cuenta que tiene esta
clave de identificación
d. int daSaldo(int clave), que devuelve el saldo de la cuenta dada por su
clave de identificación
f. void ingresa(int clave, int k), que ingresa k euros en la cuenta dada por
su clave de identificación
g. void reintegra(int clave, int k), que retira k euros de la cuenta dada por
su clave de identificación
h. void imprimeCuenta(int clave), que imprime los datos de una clave
dada por su clave de identificación
i. int saldoTotal(), que calcula el total de dinero almacenado en el banco
j. void imprimeBanco(), que imprime los datos de todas las cuentas del
banco.