Foro Oficial de Java

Yeison

Lanero Líder
Lanero VIP
1 Feb 2004
11,276
alguien me ayuda con mi ejercicio??? como hago para almacenar una coleccion de objetos en otra clase, para luego poder buscarlos?? (hablo del caso de la comision con alumnos que esta unos mensajes mas arriba)

los puedes almacenar en un lista del paquete java.util y recuerda que tenes que serializar el objeto para que no haya perdida de informacion.
 

wac666

Lanero Reconocido
13 Feb 2008
517
Pues create una coleccion de objetos del tipo que quieras, en el objeto que quieras.

Por ejemplo una coleccion de alumnos en la clase comision (creo que era asi. no?)


private ArrayList<Alumno> alumnos = new ArrayList<Alumno>();

Esa es una coleccion de objetos de tipo Alumno.

para adicionar objetos se hace con

alumnos.add(o);

Donde o es el objeto o le puedes poner el new Alumno().

O como quieras.

Espero que esto te sirva de algo :D

Saludos

alguien me ayuda con mi ejercicio??? como hago para almacenar una coleccion de objetos en otra clase, para luego poder buscarlos?? (hablo del caso de la comision con alumnos que esta unos mensajes mas arriba)
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
que honda bros algien ha trabajdo con el frame work hielo o me puede decir donde se puede colaborar en el...ando pillando unos codigos con ese paquete y estan de primera....pero no he podido encontrar la fuente...os agradeceria cualquier dato.

 

FaBi_87

Lanero Regular
13 Sep 2007
24
Pues create una coleccion de objetos del tipo que quieras, en el objeto que quieras.

Por ejemplo una coleccion de alumnos en la clase comision (creo que era asi. no?)


private ArrayList<Alumno> alumnos = new ArrayList<Alumno>();

Esa es una coleccion de objetos de tipo Alumno.

para adicionar objetos se hace con

alumnos.add(o);

Donde o es el objeto o le puedes poner el new Alumno().

O como quieras.

Espero que esto te sirva de algo :D

Saludos

si si!! sirvio.. graicas, pero como hago ahora para buscar adentro de ese arreglo...osea no estoy acostumbrado a programar en objetos.. solo use smaltalk como programacion orientado a objetos y soy nuevo en esto...

como puedo hacer para realizar una busquerda.. por ej necesito encontrar al alumno que tenga el mismo legajo que el ingresado..
lo que hago es ingresar el leg, y despues haria un
Código:
for(int i; i<max; i++){
while(legingresado!=alumnos[i].legajo){
    }
 }
entonces cuando sale del whilees por que ya tiene el que es igual, y ese seria el elumno necesario... en smalltalk esto se hacia con metodos ya creados... aca en java como se haria?' ah, me dice que esta mal poner alumnos.legajo.. je

me estan ayudando bien..ahora algo para esto?
 

wac666

Lanero Reconocido
13 Feb 2008
517
Pues una busqueda mas optimizada seria de la siguiente manera:

ArrayList<Alumno> alumnos = new ArrayList<Alumno>();
java.util.Iterator<Alumno> it = alumnos.iterator();
boolean encontro = false;
Alumno alumnoEncontrado= null;
while (it.hasNext()) {
Alumno elem = (Alumno) it.next();
if(elem.legajo.equals("valor")){
encontro = true;
alumnoLegajo = elem;
}

}
// Que hacer con los resultados
if(alumnoEncontrado != null){

//hacer lo que se va a hacer con el alumno encontrado
}
else{
// no lo encontro
}
Espero le sirva
si si!! sirvio.. graicas, pero como hago ahora para buscar adentro de ese arreglo...osea no estoy acostumbrado a programar en objetos.. solo use smaltalk como programacion orientado a objetos y soy nuevo en esto...

como puedo hacer para realizar una busquerda.. por ej necesito encontrar al alumno que tenga el mismo legajo que el ingresado..
lo que hago es ingresar el leg, y despues haria un
Código:
for(int i; i<max; i++){
while(legingresado!=alumnos[i].legajo){
    }
 }
entonces cuando sale del whilees por que ya tiene el que es igual, y ese seria el elumno necesario... en smalltalk esto se hacia con metodos ya creados... aca en java como se haria?' ah, me dice que esta mal poner alumnos.legajo.. je

me estan ayudando bien..ahora algo para esto?
 

wac666

Lanero Reconocido
13 Feb 2008
517
ArrayList<Alumno> alumnos = new ArrayList<Alumno>();
java.util.Iterator<Alumno> it = alumnos.iterator();

Alumno alumnoEncontrado= null;
while (it.hasNext()) {
Alumno elem = (Alumno) it.next();
if(elem.legajo.equals("valor")){
alumnoLegajo = elem;
}

}
// Que hacer con los resultados
if(alumnoEncontrado != null){

//hacer lo que se va a hacer con el alumno encontrado
}
else{
// no lo encontro
}

El boolean se podia obviar. Igual no lo estaba usando. Saludos
Pues una busqueda mas optimizada seria de la siguiente manera:

ArrayList<Alumno> alumnos = new ArrayList<Alumno>();
java.util.Iterator<Alumno> it = alumnos.iterator();
boolean encontro = false;
Alumno alumnoEncontrado= null;
while (it.hasNext()) {
Alumno elem = (Alumno) it.next();
if(elem.legajo.equals("valor")){
encontro = true;
alumnoLegajo = elem;
}

}
// Que hacer con los resultados
if(alumnoEncontrado != null){

//hacer lo que se va a hacer con el alumno encontrado
}
else{
// no lo encontro
}
Espero le sirva
 

Shadow257

Lanero Reconocido
18 Ene 2007
533
Hola como estan, tengo una duda, necesito presentar un informe en jsp, lo q pasa es q la cantidad de registro es de miles y fuera de eso por cada registro se hace necesario ejecutar varias consultas, todo funciona bien pero a la hora de llevarlo al servidor este se cae, probe haciendo paginacion pero los jefes quieren q se cargue todo, alguien me puede dar un consejo a ver q puedo hacer.
PD: use esto
contentType="application/vnd.ms-excel"
para generar un documento en excel aun no lo pruebo pero sospecho q de igual forma se caera el servidor
Gracias de antemano por la ayuda que me puedan dar
 

NSlaver

Jack of all trades
16 Abr 2002
3,547
Hola como estan, tengo una duda, necesito presentar un informe en jsp, lo q pasa es q la cantidad de registro es de miles y fuera de eso por cada registro se hace necesario ejecutar varias consultas, todo funciona bien pero a la hora de llevarlo al servidor este se cae, probe haciendo paginacion pero los jefes quieren q se cargue todo, alguien me puede dar un consejo a ver q puedo hacer.
PD: use esto para generar un documento en excel aun no lo pruebo pero sospecho q de igual forma se caera el servidor
Gracias de antemano por la ayuda que me puedan dar

Estas dando muy poca información para un problema al parecer extenso.
 

yadergo

Lanero Regular
21 Ago 2008
1
oigan soy nuevo en el foro y me gustaria que me ayudaran con un proyecto que estoy realizando
necesito saber como poner una imagen de fondo en un JFrame y que se redimensione con la ventana
 

xjuanch0x

Lanero Reconocido
25 Sep 2004
690
bueno en un objeto canvas ò un label agrega una imagen ....y en el metodo paint del frame haces que dibuje nuevamente la panatalla y a canvas o label se asignas en nuevo tamano para que la imagen cambie de tamaño.....el metodo paint lo llamaras cuando en evento de cambio de tamaño del frame se active...es muy facil..entra en google y busca informacion del metodo paint y de los eventos de la JFrame es facil...
 
  • Me gusta
Reacciones: 2 personas

Shadow257

Lanero Reconocido
18 Ene 2007
533
Hola como estan, tengo una duda, necesito presentar un informe en jsp, lo q pasa es q la cantidad de registro es de miles y fuera de eso por cada registro se hace necesario ejecutar varias consultas, todo funciona bien pero a la hora de llevarlo al servidor este se cae, probe haciendo paginacion pero los jefes quieren q se cargue todo, alguien me puede dar un consejo a ver q puedo hacer.
PD: use esto para generar un documento en excel aun no lo pruebo pero sospecho q de igual forma se caera el servidor
Gracias de antemano por la ayuda que me puedan dar

Solo una duda mas, que es mas conveniente llenar una tabla en el formulacion cargando cada registro a la vez o mejor general primero un ArrayList con todos los datos.

Complementado lo que antes preguntaba en el informe se usa una consulta algo compleja y por cada registro de esa consulta se ejecutan otras 6 consultas lo que hace que se haga pesado para trabajar
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
Bueno como lo prometi aqui esta el codigo fuente de un cliente ftp en modo pasivo...se que a nadie le intereso pero cumplo mi palabra..asiq ue aqui va....no lo comentarre porque las instrucciones son identicas solo que organizadas de manera diferente....

PHP:
import java.io.*;
import java.net.*;
import java.util.*; 

public class Miftp 
{
 static String pasivo; 
 static int puertop;
 
 public static void CogeRespuesta(DataInputStream is) 
 {
  String salidaSocket;

  try 
  {
   do 
   {   
    salidaSocket = is.readLine( );
    
    System.out.println(salidaSocket);
   }
   while (!(Character.isDigit(salidaSocket.charAt(0)) && Character.isDigit(salidaSocket.charAt(1)) && Character.isDigit(salidaSocket.charAt(2)) && salidaSocket.charAt(3) == ' '));
   
   System.out.println("**");
   pasivo = salidaSocket;
  } 
  catch (IOException e) 
  {
   System.out.println("Error al intentar obtener la respuesta desde el puerto de control");
  }
 }

 public static boolean EnviarFichero(String comando, DataInputStream entradaPuertoControl, PrintStream salidaPuertoControl)
 {
  try
  {
   OutputStream sout;
   byte b[] = new byte[1024];
   
   salidaPuertoControl.println("type i");
   CogeRespuesta(entradaPuertoControl);
   
   salidaPuertoControl.println("pasv");
   CogeRespuesta(entradaPuertoControl);
   
   deco(pasivo);
   
   Socket sokser = new Socket(pasivo,puertop);
   salidaPuertoControl.println(comando);
   CogeRespuesta(entradaPuertoControl);
   
   StringTokenizer stringtokens = new StringTokenizer(comando);
   stringtokens.nextToken();
   String NombreFichero = stringtokens.nextToken(); 
   System.out.println(NombreFichero);
   RandomAccessFile FicheroEntrada = new RandomAccessFile(NombreFichero, "r");
   
   sout = sokser.getOutputStream();
   int longitud;
   while ((longitud = FicheroEntrada.read(b)) > 0) 
   {
    sout.write(b, 0, longitud); 
   }
   FicheroEntrada.close();
   sout.close();
   sokser.close();
   CogeRespuesta(entradaPuertoControl); 
  }
  catch(IOException e)
  {
   System.out.println(e);      
  }
  return(true);
 } 

 public static void PuertoDeDatos(String comando, boolean salvar, DataInputStream entradaPuertoControl, PrintStream salidaPuertoControl) 
 {
  try
  {
   InputStream insoc;
   byte b[] = new byte[1024];
       
   salidaPuertoControl.println("type i");
   CogeRespuesta(entradaPuertoControl);

   salidaPuertoControl.println("pasv");
   CogeRespuesta(entradaPuertoControl);
       
   deco(pasivo);
       
   Socket sokser = new Socket(pasivo,puertop);
   salidaPuertoControl.println(comando);
   CogeRespuesta(entradaPuertoControl);
       
   insoc = sokser.getInputStream();
   int longitud;
   
   if(salvar)
   {
    StringTokenizer stringtokens = new StringTokenizer(comando);
    stringtokens.nextToken();
    String NombreFichero = stringtokens.nextToken(); 
    System.out.println(NombreFichero);
    RandomAccessFile FicheroSalida = new RandomAccessFile(NombreFichero, "rw");   
    
    while ((longitud = insoc.read(b)) > 0) 
    {
     FicheroSalida.write(b, 0, longitud);
    }
    FicheroSalida.close();
   }
   else
   {
    while((longitud = insoc.read(b)) != -1) 
     System.out.write(b, 0, longitud);   
   }
   insoc.close();
   sokser.close();
   CogeRespuesta(entradaPuertoControl);
  }
  catch(IOException e)
  {
   System.out.println(e);      
  }     
 }
 
 public static void deco(String st)
 {
  int a = st.length();
  String sl = "", n1 = "", n2 = "";  
  char q;
  for(int i = 0; i < a; i++)
  {
   q = st.charAt(i);      
   if(q == '(')
   {       
    st = st.substring(i+1, a-1);
    i = a;
   } 
  }
  
  int b = 0;
  a = st.length();
  for(int i = 0; i < a; i++)
  {
   q = st.charAt(i);      
   
   if(b < 4)
   {       
    if(q == ',')
    {       
     sl = new String(sl+".");
     b = b+1;
    }
    else
    {
     sl = new String(sl+q);  
    }
   }
   else if(b == 4)
   {
    if(q == ',')
     b = b+1;
    else
     n1 = new String(n1+q);        
   }
   else if(b > 4)
   {
     n2 = new String(n2+q);        
   }
  }
  int c = sl.length();
  pasivo = sl.substring(0, c-1);
  puertop = ((Integer.valueOf(n1).intValue())*256)+(Integer.valueOf(n2).intValue());
 }
 
 public static void main(String[] args) 
 {
  if(args.length != 1) 
  {
   System.out.println("Use El Comnado : java Miftp Host");
   System.exit(1); 
  }

  Socket miSocket = null;
  PrintStream os = null;
  DataInputStream is = null;

  DataInputStream stdIn = new DataInputStream(System.in);

  try 
  {
   miSocket = new Socket(args[0], 21);

   os = new PrintStream(miSocket.getOutputStream());
   is = new DataInputStream(miSocket.getInputStream());
  } 
  catch (UnknownHostException e) 
  {
   System.err.println("Host Desconocido : "+args[0]);
  } 
  catch (IOException e) 
  {
   System.err.println("No se puede abrir una conexión con el host: " +args[0]);
  }

  if (miSocket != null && os != null && is != null) 
  {
   try 
   {
    String entradaUsuario;
    CogeRespuesta(is); 
    while ((entradaUsuario = stdIn.readLine()) != null) 
    {
     if(entradaUsuario.startsWith("list") || entradaUsuario.startsWith("nlst"))
       PuertoDeDatos(entradaUsuario, false, is, os);
             
     else if(entradaUsuario.startsWith("retr"))
       PuertoDeDatos(entradaUsuario, true, is, os); 
     
     else if(entradaUsuario.startsWith("stor") || entradaUsuario.startsWith("stou"))
       EnviarFichero(entradaUsuario, is, os);
     
     else if(entradaUsuario.startsWith("exit"))
         break;
     
     else 
     {
      os.println(entradaUsuario);
      CogeRespuesta(is); 
     } 
    } 
    os.close();
    is.close();
    miSocket.close(); 
   }
   catch (IOException e) 
   {
    System.err.println("E/S fallo en la conexión a : "+ args[0]);
   }
  } 
 } 
 
}
 
  • Me gusta
Reacciones: 2 personas

Kenshin777

Lanero Regular
27 Jul 2008
22
hola q tal, tengo un problema con un algoritmo y con un metodo deprecated(no c la traduccion), el algorimo es algo asi como d fuerza bruta, debe evaluar todas las posibilidades, hasta ahora tengo esto, el d recurrencia
PHP:
public class Recurrencia {
    
    public static void main(String[] args) {
        int[] a={1,1,1};
        int i=2;
        int j=0;
        recurrencia(a,i,j);
    }
    
    public static void recurrencia(int[] a,int i,int j){
        
        if (a[2]==100) {
            
        }
        else{
                a[i]=++j;
                System.out.println(""+a[0]+""+a[1]+""+a[2]);
                if (a[i]==9) {
                    a[i]=1;
                    i--;
                    j=1;
                    
                    if (i!=2 && i!=0 && a[1]==2) {
                        
                        recurrencia(a,i,j);
                        
                    }
                    else{
                        recurrencia(a,i,j);
                    }
                
        }
                else{
                    if (i!=2 && i!=0) {
                        recurrencia(a,++i,--j);
                        i--;
                    }
                    else{
                        recurrencia(a,i,j);
                    }
                    
                }
            }
    }
}
y el del deprecated en getbytes
PHP:
public class ArchivoCad {
public static void main(String[] args) {
    String cad="El oscuro amanecer";
    
    byte[] s = new byte [cad.length()];
    
    try {
        FileOutputStream f = new FileOutputStream("cadena.txt");
        cad.getBytes(0,cad.length(),s,0);//copia la cadena en s
        
        f.write(s);
        
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
}
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
hola q tal, tengo un problema con un algoritmo y con un metodo deprecated(no c la traduccion), el algorimo es algo asi como d fuerza bruta, debe evaluar todas las posibilidades.....

Pero cual es el objetivo...si no sabemos a ciencia cierta que es lo que quieres que haga el programa sera muy dificil ayudarte a depurarlo...
 

Kenshin777

Lanero Regular
27 Jul 2008
22
la idea del de recurrencia es lograr todas las posibles combinaciones, es decir
111
112
113
114
...
119
121
122
....
129
131
...
139
141
y asi sucesibamente hasta llegar a 999 usando todas las combinaciones posibles, y en el segundo es guardar un String en un archivo,pero quiero aprender a hacerlo d la mejor manera ya q el getbytes es deprecated
 

[sC+].B@rt.Oc3

Lanero Reconocido
13 Abr 2007
4,194
hola amigos estoy haciendo un programa para la biblioteca de una universidad con NetBeans IDE 6.0 pero quiero saber si se le puede poner color a un jtable como asi por ejemplo q me muestre de color rojo todos los libros q han sido prestados y en azul los q no han sido prestado me hago entender...