clase vector java

12
1 17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 1/23 Clase Vector Problemas 17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 2/23 La Clase Vector Un Vector es similar a un array, con la diferencia que un Vector crece automáticamente cuando alcanza la dimensión inicial máxima. Además, proporciona métodos adicionales para añadir, eliminar elementos, e insertar elementos entre otros dos existentes. Veamos algunos de ellos: Cómo crear un Vector: Vector miVector = new Vector();

Upload: luis

Post on 27-Apr-2015

2.108 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Clase Vector Java

1

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 1/23

Clase Vector

Problemas

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 2/23

La Clase VectorUn Vector es similar a un array, con la diferencia que un Vector crece automáticamente cuando alcanza la dimensión inicial máxima. Además, proporciona métodos adicionales para añadir, eliminar elementos, e insertar elementos entre otros dos existentes. Veamos algunos de ellos:

Cómo crear un Vector: Vector miVector = new Vector();

Page 2: Clase Vector Java

2

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 3/23

La Clase Vector

Otra forma de creación de un vector:•Vector miVec = new Vector();•Vector miVec = new Vector(25);• Vector miVec = new Vector(20,5);

Para usar la clase Vector debemos importar la librería :import java.util.*;

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 4/23

La Clase VectorPara añadir elementos al vector:Hay dos formas de añadir elementos a un vector:

1. añadiendo un elemento a continuación del último elemento del vector, usando la función miembro addElement.miVec.addElement("uno");miVec.addElement("dos");miVec.addElement("cinco"); miVec.addElement(“cuatro");

uno dos cuatrocinco ...

Page 3: Clase Vector Java

3

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 5/23

La Clase VectorOtra forma de añadir elementos al vector:

2. insertando un elemento en una determinada posición, mediante la función miembroinsertElementAt

miVec.insertElementAt("tres", 2);

“uno” “dos” “cuatro”“tres” ...

“cinco”

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 6/23

La Clase VectorEliminar elementos del vector:

1. La función miembro removeAllElements elimina todos los elementos de un vector.miVec.removeAllElements();

2. Para eliminar un elemento particular del Vector, utilizamos la función miembro removeElementmiVec.removeElement("cuatro“);

Si existen varios datos en el vector que coinciden con el dato a eliminar, se elimina el primero que halle

Page 4: Clase Vector Java

4

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 7/23

La Clase Vector

Para eliminar un elemento de una posición específica del Vector, utilizamos la función miembro removeElementAtmiVec.removeElementAt(2);

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 8/23

La Clase VectorAcceso a Elementos del Vector• Para conocer cuál es el primer elemento

almacenado en el vector: miVec.firstElement()

• Para conocer cuál es el ultimo elemento guardado en el vector: miVec.lastElement()

• Para saber si un vector está vacío:miVec.isEmpty()

devuelve true o false si el vector esta vacío o no

Page 5: Clase Vector Java

5

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 9/23

La Clase VectorAcceso a los elementos de un vectorPara saber cuantos elementos tiene un vector, se usa la

función miembro sizemiVec.size

Para saber la dimensión actual del vector, se usa la función capacity

miVec.capacity

Para ver el contenido del Vector en la posición i , usamos la función miembro elementAt.

miVec.elementAt(3)regresa contenido de Vector miVec en la posición 4

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 10/23

La Clase Vectorpublic class UsaVectores{

public static void main(String a[ ]){VectorClass miDato = new VectorClass();miDato.miVec.addElement("Medicina");miDato.miVec.addElement("Ingenieria");miDato.miVec.addElement("Ciencias");miDato.miVec.addElement("Economia");miDato.miVec.addElement("Humanidades");miDato.miVec.addElement("Administración");JOptionPane.showMessageDialog(null,"El primer elemento es " + miDato.miVec.firstElement() );

JOptionPane.showMessageDialog(null,"El ultimo elemento es " + miDato.miVec.lastElement() );

JOptionPane.showMessageDialog(null,"El segundoelemento es " + miDato.miVec.elementAt(1) );

System.exit(0); }

}

public class VectorClass{Vector miVec = new Vector();

}

Page 6: Clase Vector Java

6

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 11/23

Uso de Objetos con VectoresManejar las notas de un estudiante en un Objeto, usando un arreglo:

doubledefdoublenota3doublenota2doublenota1StringnombStringcodiTipo DatoNombre Campo

Clase Estudiantepublic class Estudiante {

String codi;String nomb;double nota1;double nota2;double nota3;double def;

}

Guardar como Estudiante.java

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 12/23

Uso de Objetos con VectoreselEstudiante

codi=codi=““04275550427555””;;nomb=nomb=““SergioSergio””;;nota1=4.5;nota1=4.5;nota2=5.0;nota2=5.0;nota3=4.8;nota3=4.8;def=4.77;def=4.77;

elEstudianteelEstudiante

codi =codi =““04165450416545””;;nomb =nomb =““WalterWalter””;;nota1 =1.2;nota1 =1.2;nota2 =1.2;nota2 =1.2;nota3 =1.2;nota3 =1.2;def=1.2;def=1.2;

elEstudianteelEstudiante

codi =codi =““04057550405755””;;nomb =nomb =““AlvaroAlvaro””;;nota1 =5.0;nota1 =5.0;nota2 =5.0;nota2 =5.0;nota3 =5.0;nota3 =5.0;def=5.0;def=5.0;

elEstudianteelEstudiante

codi =codi =““04046330404633””;;nomb =nomb =““GraceGrace””;;nota1 =4.0;nota1 =4.0;nota2 =4.4;nota2 =4.4;nota3 =4.8;nota3 =4.8;def=4.4;def=4.4;

elEstudianteelEstudiante

Page 7: Clase Vector Java

7

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 13/23

Se requiere:• Solicitar las notas de cada estudiante

• Crear un objeto de la clase Estudiante (llamado elEstudiante)

• Asignarle a sus atributos los valores digitados por el usuario.

• Ingresar el objeto elEstudiante al vector

Uso de Objetos con Vectores

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 14/23

Solicitar las notas de cada estudiante

codi = JOptionPane.showInputDialog(“Codigo ");

nomb = JOptionPane.showInputDialog(“Nombre ");

cal1 = Double.parseDouble(JOptionPane.showInputDialog(“Calificacion 1 "));

cal2 = Double.parseDouble(JOptionPane.showInputDialog(“Calificacion 2 "));

cal3 = Double.parseDouble(JOptionPane.showInputDialog(“Calificacion 3 "));

notaFinal= (cal1+cal2+cal3)/3;

Uso de Objetos con Vectores

Page 8: Clase Vector Java

8

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 15/23

Crear un objeto de la clase Estudiante(llamado elEstudiante)

Estudiante elEstudiante = new Estudiante();

Uso de Objetos con Vectores

codi=?;codi=?;nomb=?;nomb=?;nota1=?;nota1=?;nota2=?;nota2=?;nota3=?;nota3=?;def=?;def=?;

elEstudianteelEstudiante

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 16/23

Asignarle a los atributos de elEstudiante los valores digitados por el usuario.

elEstudiante.codi=codigo;

elEstudiante.nomb=nombre;

elEstudiante.nota1=cal1;

elEstudiante. nota2=cal2;

elEstudiante. nota3=cal3;

elEstudiante.def=notaFinal;

Uso de Objetos con Vectores

codi=codi=““97095559709555””;;nomb=nomb=““SergioSergio””;;nota1=4.5;nota1=4.5;nota2=5.0;nota2=5.0;nota3=4.8;nota3=4.8;def=4.77;def=4.77;

elEstudianteelEstudiante

Page 9: Clase Vector Java

9

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 17/23

Ingresar el objeto elEstudiante al vector

Vector vecMiEstudiante = new Vector();

vecMiEstudiante.addElement(elEstudiante);

Uso de Objetos con Vectores

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 18/23

Estructura de solución del problema:Para (int i = 0; i<n ; i++){

• Solicitar las notas de cada estudiante

• Crear un objeto de la clase Estudiante (llamado elEstudiante)

• Asignarle a sus atributos los valores digitados por el usuario.

• Ingresar el objeto elEstudiante al vector

}

Uso de Objetos con Vectores

Page 10: Clase Vector Java

10

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 19/23

Mostrar el código,nombre y nota final de los estudiantes que perdieron el curso:

Recorrer todo el vector de estudiantes y verificar si la nota definitiva de cada estudiante es menor que 3.0

Si se cumple esta condición, se muestra en miArea código, nombre y nota final.

Algoritmo:para ( i = 0; hasta n; i++){

si ( la nota definitiva del estudiante i es menor que 3.0 )mostrar el código, el nombre y la nota definitiva

}fin

Uso de Objetos con Vectores

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 20/23

def<3.0?

Uso de Objetos con Vectores

codi=codi=““04275550427555””;;nomb=nomb=““SergioSergio””;;nota1=4.5;nota1=4.5;nota2=5.0;nota2=5.0;nota3=4.8;nota3=4.8;def=4.77;def=4.77;

elEstudianteelEstudiante

codi =codi =““04165450416545””;;nomb =nomb =““WalterWalter””;;nota1 =1.2;nota1 =1.2;nota2 =1.2;nota2 =1.2;nota3 =1.2;nota3 =1.2;def=1.2;def=1.2;

elEstudianteelEstudiante

codi =codi =““04057550405755””;;nomb =nomb =““AlvaroAlvaro””;;nota1 =5.0;nota1 =5.0;nota2 =5.0;nota2 =5.0;nota3 =5.0;nota3 =5.0;def=5.0;def=5.0;

elEstudianteelEstudiante

codi =codi =““04046330404633””;;nomb =nomb =““GraceGrace””;;nota1 =4.0;nota1 =4.0;nota2 =4.4;nota2 =4.4;nota3 =4.8;nota3 =4.8;def=4.4;def=4.4;

elEstudianteelEstudiante

Page 11: Clase Vector Java

11

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 21/23

Código Java:for (int i=0; i<n; i++){

if ( ((Estudiante) vecMiEstudiante.elementAt(i)).def < 3.0 )

miArea.append(((Estudiante) vecMiEstudiante.elementAt(i)).codi +"\t"+((Estudiante) vecMiEstudiante.elementAt(i)).nomb+"\t“+((Estudiante) vecMiEstudiante.elementAt(i)).def);

}

Acceder al campo def (Nota definitiva) del objeto estudiante en la posición i del vector llamado vecMiEstudiante

Uso de Objetos con Vectores

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 22/23

Mostrar el nombre de los estudiantes que ganaron cada una de las tres notas

Recorrer todo el vector de estudiantes y verificar si nota1, nota2 y nota3 es mayor o igual 3.0

Si se cumple esta condición, se muestra en miArea el nombre de ese estudiante.

Algoritmo:

para ( int j=0; hasta n; j++) {

si ( nota1>=3.0 & nota2>=3.0 & nota3>=3.0 para estudiante j)

Mostrar (nombre)

}fin

Uso de Objetos con Vectores

Page 12: Clase Vector Java

12

17/11/04 Curso de Algoritmia y Programación - Prof: Mauricio Fernández - Clase 7 23/23

Código Java:for(int j=0; j<n; j++) {

if ( ((Estudiante) vecMiEstudiante.elementAt(j)).nota1>=3.0 &&

((Estudiante) vecMiEstudiante.elementAt(j)). nota2>=3.0 &&

((Estudiante) vecMiEstudiante.elementAt(j)). nota3>=3.0 ) {

miArea.append(((Estudiante) vecMiEstudiante.elementAt(j)).nomb);

}

}

Uso de Objetos con Vectores

Casting del vector miVecEstudiantes a objeto de la clase Estudiante