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

Array Indefinido

Estas en el tema de Array Indefinido en el foro de Java en Foros del Web. Hola, supongamos que tengo este array, pero no se cuantos valores va a tener, asiqe le pongo por ejemplo 500. (si defino el array asi:String ...
  #1 (permalink)  
Antiguo 22/11/2010, 21:43
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 14 años, 5 meses
Puntos: 0
Array Indefinido

Hola, supongamos que tengo este array, pero no se cuantos valores va a tener, asiqe le pongo por ejemplo 500. (si defino el array asi:String torta[]; , el script no funciona, ya lo probe)

Código:
import java.net.*;
import java.io.*;
import java.applet.*;
    import java.awt.*;
public class dibu extends Applet {
      String torta[]=new String[500];
	public void init(){
	 torta[0]="uno";
     torta[1]="dos";
     torta[2]="tres";
     torta[3]="cuatro";




	}


        public void paint(Graphics g){

      for (int i = 0; i < torta.length; i++) {
         //int x = width/2 - fm.stringWidth(phrases[i])/2;
         g.drawString(torta[i],10,10+i*20);
      }
  }

}
hay alguna forma de definir el string de longitud indefinida?, es decir que se deje en blanco y se vaya llenando a medida que se necesite, y que funcion el script??

desde ya Muhas gracias.
  #2 (permalink)  
Antiguo 22/11/2010, 23:04
Avatar de leocente  
Fecha de Ingreso: diciembre-2009
Mensajes: 62
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Array Indefinido

Claro que si Amigo.


Código Java:
Ver original
  1. //import java.net.*;
  2. import java.util.Vector;
  3. //import java.io.*;
  4. import java.applet.*;  
  5. import java.awt.*;
  6.    
  7. public class Borrar extends Applet {
  8.     Vector torta=new Vector();
  9.    
  10.     public void init(){
  11.      torta.add("uno");
  12.      torta.add("dos");
  13.      torta.add("tres");
  14.      torta.add("cuatro");
  15.     }
  16.     public void paint(Graphics g){
  17.  
  18.       for (int i = 0; i < torta.size(); i++) {
  19.          String a=(String)torta.elementAt(i);
  20.          g.drawString(a,10,10+i*20);
  21.       }
  22.   }
  23.  
  24. }

Podes utilizar la clase Vector, en el que puede contener varios tipos de datos (int, doublle, float ,etc) o elementos de tipo clase.

Para añadir eltos solo necesitar llamar al metodo ".add(Object o)" de la clase vector.

Ese Vector tiene capacidad para 20 elementos por defecto, pero en caso de que quieras añadir el elemento nro 21, automaticamente se le duplica la capacidad al Vector, es decir, al Vector que contiene 21 eltos, tiene capacidad 40 y tamaño (size) 21.

Con el metodo "elemetAt( int indice)" devolves el elemento en esa posiscion, pero como los parametros que estan en todos los ".add ()" es decir, "uno", "dos",etc, si bien son String claramente, yo los añadi como Object, Y como Object es la clase que se come (clase madre) a todas las demas en java, String hereda de Object, o sea que "uno", "dos", etc, son de tipo Object tambien. Y tenes que castearlo anteponiendo (String), ya que a ese elto lo estoy alamacenando en una variable de tipo String.

Googlea, "La clase Vector" que tiene metodos muy interesantes, como darle una capacidad distinta a la de que tiene por defecto, que vaya incrementando su capacidad a lo que vos quieras.

Vos fijate! Saludos maquina!

Última edición por leocente; 22/11/2010 a las 23:12
  #3 (permalink)  
Antiguo 23/11/2010, 00:12
 
Fecha de Ingreso: agosto-2010
Mensajes: 29
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Array Indefinido

la mejor forma es:

Código Java:
Ver original
  1. //import java.net.*;
  2. import java.util.Vector;
  3. //import java.io.*;
  4. import java.applet.*;  
  5. import java.awt.*;
  6.    
  7. public class Borrar extends Applet {
  8.     Vector<String> torta=new Vector<String>();
  9.    
  10.     public void init(){
  11.         torta.add("uno");
  12.         torta.add("dos");
  13.         torta.add("tres");
  14.         torta.add("cuatro");
  15.     }
  16.  
  17.     public void paint(Graphics g){
  18.  
  19.          for (String cadena:torta) {
  20.              g.drawString(cadena,10,10+i*20);
  21.          }
  22.   }
  23.  
  24. }
  #4 (permalink)  
Antiguo 23/11/2010, 05:50
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Array Indefinido

leocente & DDoS
La mejor forma es no usar API deprecada desde hace añossssssss (Vector's)
__________________
BadProgrammerException!
  #5 (permalink)  
Antiguo 23/11/2010, 06:08
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Array Indefinido

Vector tiene por defecto tamaño 10, no 20, pero aun así ese es un detalle de implementación con el que normalmente no es necesario jugar excepto en casos muy concretos.

Y puestos a ello, es mejor usar List por cuestiones de rendimiento.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.

Etiquetas: Ninguno
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 18:22.