Foros del Web » Programación para mayores de 30 ;) » Java »

clase vector

Estas en el tema de clase vector en el foro de Java en Foros del Web. hola buenas estoy haciendo pruebas con la clase vector .es un ejercico el cual estaba echo con un arrayList y lo he modificado a un ...
  #1 (permalink)  
Antiguo 05/06/2012, 11:43
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
clase vector

hola buenas estoy haciendo pruebas con la clase vector .es un ejercico el cual estaba echo con un arrayList y lo he modificado a un vector pero hay dos metodos que no me funciona alguin me puede ayudar me urge en demasia por favor es para un examen voy un poco mal gracias :

import java.util.Vector;
import java.util.Enumeration;

public class Libreta
{
// campos
private String titulo;
private Vector notas;
private Enumeration e;

/**
* Constructor for objects of class Libreta
*/
public Libreta(String titulo)
{
this.titulo=titulo;
notas=new Vector();
e=notas.elements();


}

/**
* Constructor for objects of class Libreta
*/
public Libreta()
{

notas=new Vector();
e=notas.elements();


}

/**
* Metodo para modificar el titulo de la libreta-
*/
public void setTituloLibreta(String titulo)
{
this.titulo=titulo;

}


/**
* Metodo que devuelve el titulo de la de la libreta.
*/
public String getTituloLibreta()
{
return titulo;

}






/**
* Metodo para agregar notas a la libreta alternativo
*
* @param titulo,contenido,dia,mes,año
*
*/
public void agregarNota(Nota laNota)
{

boolean encontrado=false;
Nota s=null;


while(e.hasMoreElements()){
s=(Nota)e.nextElement();
if(s.getTitulo().equals(laNota.getTitulo())){

encontrado=true;}




}

if(encontrado){
System.out.println("Usted no puede introducir en la libreta notas con el mismo titulo");}
else{
notas.addElement(laNota);}
}

/**
*/
public int tamaño()
{
// put your code here
return notas.size();
}

/**
* este no me funciona tengo una clase que se llama nota.
el cual tiene un metodo para imprimir que se llama printNote
*/
public void imprimir()
{
Nota s=null;
while(e.hasMoreElements()){
s=(Nota)e.nextElement();
s.printNote();}







}

/**Tampoco me funciona
* Metodo para eliminar un nota dado el titulo.
*
*/
public void eliminarNota(String titulo)
{

int indice=0;
boolean encontrado= false;
Nota s=null;
while(e.hasMoreElements()&& !encontrado){
s=(Nota)e.nextElement();
if(s.getTitulo().equals(titulo)){
notas.remove(s);
encontrado=true;}
else{
indice++;}

}


if(encontrado){
System.out.println("La nota ha sido borrada");}
else {
System.out.println("No se encontro la nota dada.");
}


}


}
  #2 (permalink)  
Antiguo 05/06/2012, 12:09
Avatar de Lalounam  
Fecha de Ingreso: mayo-2012
Ubicación: México D.F.
Mensajes: 59
Antigüedad: 11 años, 11 meses
Puntos: 19
Respuesta: clase vector

A mi el único error que me marca es la falta de la clase Nota, si la tienes échala :)
  #3 (permalink)  
Antiguo 05/06/2012, 14:01
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: clase vector

/**
*
*
* permite la creacion de notas
*
* * @version (Practica 2012)
*/
public class Nota
{
// Atributos o campos
private String titulo;
private String contenido;
private VisorDeNumeros1 dias;
private VisorDeNumeros3 meses;
private VisorDeNumeros2 años;
private String visorFechaDeCreacion;


/**
* Constructor simple.
*/
public Nota()
{
dias=new VisorDeNumeros1 (31);
meses=new VisorDeNumeros3 (12);
años=new VisorDeNumeros2();
actualizarVisorFechaDeCreacion();

}



/**
* Constructor para pasar parametros.
*/
public Nota(String titulo,String contenido,int dia,int mes,int año)
{
this.titulo=titulo;
this.contenido=contenido;
dias=new VisorDeNumeros1 (31);
meses=new VisorDeNumeros3 (12);
años=new VisorDeNumeros2();
setFechaDeCreacion( dia, mes,año);

}

/**
* Constructor para pasar parametros.
*/
public Nota(String titulo)
{
this.titulo=titulo;

dias=new VisorDeNumeros1 (31);
meses=new VisorDeNumeros3 (12);
años=new VisorDeNumeros2();
}





/**
* Actualizar el visorfecha
*/
public void actualizarVisorFechaDeCreacion()
{
visorFechaDeCreacion=dias.getValorDelVisor()+"/"+meses.getValorDelVisor()+"/"+años.getValorDelVisor();

}

/**
* obtener el valor del dia
*/
public int getDia()
{
// put your code here
return dias.getValor();
}

/**
* obtener el valor del dia
*/
public int getMes()
{
// put your code here
return meses.getValor();
}

/**
* obtener el valor del dia
*/
public int getAño()
{
// put your code here
return años.getValor();
}





/**
* metodo para poner o modificar la fecha.
*/
public void setFechaDeCreacion(int dia,int mes,int año)
{
dias.setValor(dia);
meses.setValor(mes);
años.setValor(año);
actualizarVisorFechaDeCreacion();
}

/**
* metodo para obtener la fecha.
*/
public String getVisorFechaDeCreacion()
{
// put your code here
return visorFechaDeCreacion;
}

/**
* metodo de acceso para obtener el nombre del titulo.
*/
public String getTitulo()
{

return titulo;
}

/**
* metodo para imprimir el titulo de una nota.
*/
public void imprimirTitulo()
{
// put your code here
System.out.println(titulo);
}




/**
* metodo de modificacion para modificar el nombre del titulo.
*/
public void setTitulo(String titulo)
{

this.titulo= titulo ;
}

/**
* metodo de acceso para obtener el contenido.
*/
public String getContenido()
{

return contenido;
}

/**
* metodo de modificacion para modificar el contenido.
*/
public void setContenido(String contenido)
{

this.contenido= contenido ;
}



/**
* metodo de impresion de los detalles de la nota.
*/
public void printNote()
{

System.out.println("Titulo:"+ titulo );
System.out.println();
System.out.println("Creada: "+ visorFechaDeCreacion );
System.out.println();
System.out.println( contenido );
System.out.println();
}
  #4 (permalink)  
Antiguo 05/06/2012, 14:49
Avatar de Lalounam  
Fecha de Ingreso: mayo-2012
Ubicación: México D.F.
Mensajes: 59
Antigüedad: 11 años, 11 meses
Puntos: 19
Respuesta: clase vector

Ahora me pide VisorDeNumeros1, 2 y 3 jajaja
  #5 (permalink)  
Antiguo 05/06/2012, 15:06
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: clase vector

joe que mal ya voy ya lo siento



/**
* Write a description of class Visornumeos1 here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class VisorDeNumeros1
{
// instance variables - replace the example below with your own
private int limite;
private int valor;

/**
* Constructor for objects of class Visornumeos1
*/
public VisorDeNumeros1 (int limiteMaximo)
{
limite=limiteMaximo;
valor=0;

}

/**
* metodo para introducir un valor nuevo.
*/
public void setValor(int nuevovalor)
{

if(nuevovalor < 1 || nuevovalor > 31) {
System.out.println("Dia " + nuevovalor+
" fuera de rango , " +
"el rango debe ser 1 ... 31");}
else{
this.valor=nuevovalor;}

}

/**
* metodo para consultar el valor.
*/
public int getValor()
{

return valor;
}


/**
* metodo para consultar el valordelvisor.
*/
public String getValorDelVisor()
{

if(valor<10){
return "0"+valor;}
else{
return "" +valor;}
}
  #6 (permalink)  
Antiguo 05/06/2012, 15:07
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: clase vector

/**
* Write a description of class Visornumeos1 here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class VisorDeNumeros2
{
// campos

private int valor;

/**
* Constructor for objects of class Visornumeos1
*/
public VisorDeNumeros2 ()
{

valor=0;

}

/**
* metodo para introducir un valor nuevo.
*/
public void setValor(int nuevovalor)
{
valor=nuevovalor;



}

/**
* metodo para consultar el valor.
*/
public int getValor()
{

return valor;
}


/**
* metodo para consultar el valordelvisor.
*/
public String getValorDelVisor()
{

if(valor<100){
return "00"+valor;}
else{
return""+valor;}
  #7 (permalink)  
Antiguo 05/06/2012, 15:08
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: clase vector

/**
* Write a description of class Visornumeos1 here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class VisorDeNumeros3
{
// instance variables - replace the example below with your own
private int limite;
private int valor;

/**
* Constructor for objects of class Visornumeos1
*/
public VisorDeNumeros3 (int limiteMaximo)
{
limite=limiteMaximo;
valor=0;

}

/**
* metodo para introducir un valor nuevo.
*/
public void setValor(int nuevovalor)
{

if(nuevovalor < 1 || nuevovalor > 12) {
System.out.println("Mes " + nuevovalor+
" fuera de rango , " +
"el rango debe ser 1 ... 12");}
else{
this.valor=nuevovalor;}

}

/**
* metodo para consultar el valor.
*/
public int getValor()
{

return valor;
}


/**
* metodo para consultar el valordelvisor.
*/
public String getValorDelVisor()
{

if(valor<10){
return "0"+valor;}
else{
return "" +valor;}
}
}
todo esto de los visores me sobraba lo que pasa es que estaba aprendiendo y queria afianzar conceptos pues ala hora de manejar objetos
  #8 (permalink)  
Antiguo 05/06/2012, 15:39
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: clase vector

me lo han solucionado en otro foro agregando este codigo
Enumeration e = (Enumeration) this.notas.elements();
antes de los bucles
  #9 (permalink)  
Antiguo 05/06/2012, 15:39
Avatar de Lalounam  
Fecha de Ingreso: mayo-2012
Ubicación: México D.F.
Mensajes: 59
Antigüedad: 11 años, 11 meses
Puntos: 19
Respuesta: clase vector

Mira usando el código que pegaste arriba hizé este main:

Código Java:
Ver original
  1. public class Main {
  2.  
  3.     public static void main(String args[]){
  4.         Libreta myLib = new Libreta("Libreton");
  5.         Nota nota = new Nota("Nota1","Hola, esta es la nota1",1,1,2012);
  6.        
  7.         myLib.agregarNota(nota);
  8.        
  9.         myLib.imprimir();
  10.     }
  11.    
  12. }

y todo va bien, mira:


Titulo:Nota1

Creada: 01/01/2012

Hola, esta es la nota1


No veo problema alguno, salvo la generalidad en las declaraciones de Vector. Te recomiendo que pongas el tipo que usarás en cada new Vector de la siguiente forma:

Código Java:
Ver original
  1. private Vector<Nota> notas = new Vector<Nota>();
  #10 (permalink)  
Antiguo 05/06/2012, 15:40
Avatar de Lalounam  
Fecha de Ingreso: mayo-2012
Ubicación: México D.F.
Mensajes: 59
Antigüedad: 11 años, 11 meses
Puntos: 19
Respuesta: clase vector

Ahora, si puedes especificar un poco más tu problema trataré de echarte la mano :D
  #11 (permalink)  
Antiguo 05/06/2012, 16:30
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: clase vector

entonces tal como me has definido el vector funcionaria igual que un arrayList no tendria que poner cosas raras de enumeraciones?
si funciona como un arrayList que capacidad tiene
  #12 (permalink)  
Antiguo 05/06/2012, 16:34
Avatar de Lalounam  
Fecha de Ingreso: mayo-2012
Ubicación: México D.F.
Mensajes: 59
Antigüedad: 11 años, 11 meses
Puntos: 19
Respuesta: clase vector

El arrayList es mejor que Vector hasta donde sé, dado que Vector usa arreglos de manera oculta y cada vez que agregas elementos crea un nuevo arreglo más grande y así sucesivamente, lo cual no es eficiente. Y arrayList tiene una lista, la cual puede crecer de manera más eficiente. Sin embargo, sinceramente hasta donde sé te sierven para lo mismo.
  #13 (permalink)  
Antiguo 05/06/2012, 16:39
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: clase vector

es que me recomendaron la clase vector en vez de los arreglos para cuando tienes una coleccion de tamaño fijo.por lo que he leido cuando creas el vector tiene una capacidad de 100 si no se la especificas y luego si la llenas pues aumenta no se cuanto muchas gracias entonces voy a usar la clase vector como un arrayList .es que en un examen pusieron un gestor de hotel y las habitaciones no las vas hacer con un arraylist no?me dijeron que con un arreglo
pregunto que tal harias aqui esto con un vector lo de las habitaciones
  #14 (permalink)  
Antiguo 05/06/2012, 16:40
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: clase vector

es que los arreglos no se bien recorrerlos y eso por eso ando apurado es que tenemos un libro que `pasa de definirte como se crea un arreglo ha hacer un ejercicio que se te va la olla joe no saben explicar primero un ejemplo simple y luego que metan caña si quieren
  #15 (permalink)  
Antiguo 05/06/2012, 16:41
Avatar de Lalounam  
Fecha de Ingreso: mayo-2012
Ubicación: México D.F.
Mensajes: 59
Antigüedad: 11 años, 11 meses
Puntos: 19
Respuesta: clase vector

No, la clase Vector es para cuando el tamaño va a ser variable, si tienes arreglos fijos utiliza la estructura de arreglos de java:

String miArreglo[] = new String[100]

Eso es lo mejor, no es necesario en casos así usar clases como Vector o ArrayList, además puedes crear arreglos de cualquier tipo, ya sea nativo (int, double, float) o clases (MyClase1, MyClase2, etc).
  #16 (permalink)  
Antiguo 05/06/2012, 16:47
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: clase vector

es que no se usarlos se crearlos pero poco mas nada gracias adios

Etiquetas: clase, string, vectores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:24.