clase vector java
TRANSCRIPT
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();
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 ...
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
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
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();
}
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
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
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
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
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
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
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