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

Consulta con ArrayList

Estas en el tema de Consulta con ArrayList en el foro de Java en Foros del Web. Buen dia, la verdad esque estoy aprendiendo a usar los ArrayList.. y se me complica.. pero me ayuda a ahorrar bastante codigo, mi consulta es ...
  #1 (permalink)  
Antiguo 23/05/2012, 09:18
 
Fecha de Ingreso: febrero-2012
Ubicación: Lima
Mensajes: 64
Antigüedad: 12 años, 10 meses
Puntos: 1
Exclamación Consulta con ArrayList

Buen dia, la verdad esque estoy aprendiendo a usar los ArrayList.. y se me complica.. pero me ayuda a ahorrar bastante codigo, mi consulta es la siguiente..
1.- tengo el siguiente arraylist
ArrayList<String> amortizacionList = new ArrayList<String>();
este codigo me genera un monto de sueldos el cual tengo q dar formato porq me muestra asi: S/. 00000000053.8500 y quiero q se muestre S/.53.85
Tengo un metodo que me formatea pero tiene q ser double y en este caso no se puede porq es string, mi pregunta es.. como hago para convertir un arrayList String a Double ya q no puedo usar el "Double.parseDouble" ... ya q desde un comienzo no puedo cambiar porq ArrayList<String> amortizacionList son datos q recibo y tienen q ser unicamente String... espero q se me entienda
2.- Tengo otro array list:
ArrayList<String> situacionList = new ArrayList<String> ();
este array me generano nombres de situaciones como ACT,CAN, CAS
lo que quisiera hacer es comparar en un if si situacionList es ACT q me muestre ACTIVO, si situacionList es CAN que me muestre CANCELADO y asi... pero intente hacer un if.. y me sale errores.. mi idea era esta
if(cronograma.getSituacionList().equals("ACT")){
cronograma.setSituacionList().add("a"); //o
cronograma.setSituacionList("ACTIVO");

}
Si alquien me da una guia porfavor!!! o alguna info de ArrayList.. me ayudaria muchoo
estoy interesada en aprender esto!! gracias
  #2 (permalink)  
Antiguo 23/05/2012, 09:57
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: Consulta con ArrayList

Creo que te estás confundiendo con el uso de ArrayList. Como su nombre indica permite agrupar un conjunto de datos del mismo tipo (un array).

situacionList es un ArrayList, por tanto, tienes varios datos, es decir, contiene varias cadenas, no una sola.

Para obtener una posición del array puedes usar get, es decir,

situacionList.get(0) //Obtienes la cadena en la primera posición

Puedes recorrer el array con un foreach:

Código Java:
Ver original
  1. for (String situacion : situacionList){
  2.  System.out.println(situacion);
  3. }

Si quieres convertir un ArrayList<String> en ArrayList<Double> tendrás que recorrer el array y convertir uno por uno:

Código Java:
Ver original
  1. ArrayList<Double> datos = new  ArrayList<Double>();
  2. for (String amortizacion: amortizacionList ){
  3.  datos.add(Double.parseDouble(amortizacion));
  4. }


Si nos explicas un poco mejor lo que quieres hacer, te podremos ayudar más.
  #3 (permalink)  
Antiguo 23/05/2012, 10:27
 
Fecha de Ingreso: febrero-2012
Ubicación: Lima
Mensajes: 64
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Consulta con ArrayList

Muchas gracias por responder..
lo que pasa esque antes yo tenia 10 variables y me mostraban asi:
amortizacion1 //00000000053.8500
amortizacion2 //00000000053.8500
amortizacion3 //00000000053.8500
amortizacion4 //00000000053.8500
......

para q se muestre 53.85 lo que yo hacia era lo siguiente
en mi clase controller:

if (cronograma.getSamortizacion1()!= null)cronograma.setSamortizacion1(Funciones.format earMonto(Double.parseDouble(cronograma.getSamortiz acion1())));
if (cronograma.getSamortizacion2()!= null)cronograma.setSamortizacion2(Funciones.format earMonto(Double.parseDouble(cronograma.getSamortiz acion2())));
if (cronograma.getSamortizacion3()!= null)cronograma.setSamortizacion3(Funciones.format earMonto(Double.parseDouble(cronograma.getSamortiz acion3())));
if (cronograma.getSamortizacion4()!= null)cronograma.setSamortizacion4(Funciones.format earMonto(Double.parseDouble(cronograma.getSamortiz acion4())));

y me mostraba ya formateado. 53.85

Mi metodo formatearMonto es este:
public static String formatearMonto(Double monto){
monto=Funciones.redondear_numero_decimales(monto,2 );
if (monto < 0){
monto = monto * (-1);
}
DecimalFormatSymbols simbolos = new DecimalFormatSymbols();
simbolos.setDecimalSeparator('.');
simbolos.setGroupingSeparator(',');
DecimalFormat formateador = new DecimalFormat("###,###,###,###,###,##0.00");
formateador.setDecimalFormatSymbols(simbolos);
return formateador.format(monto);

}

pero para no estar repitiendo decidi usar ArrayList que hice en String porq los datos q recibo son en String:
ArrayList<String> amortizacionList = new ArrayList<String>();

y yo pense formatear como lo estaba haciendo pero pero ahora solo para el arrayList:
if (cronograma.getAmortizacionList()!= null)cronograma.setAmortizacionList(Funciones.form atearMonto(Double.parseDouble(cronograma.getAmorti zacionList())));

pero no se puede me sale error en la parte "parseDouble", dice que no es aplicable para los argumentos ArrayList<Sting>

nose como podria hacer.... espero alguna guia.. muchas gracias :)
  #4 (permalink)  
Antiguo 23/05/2012, 12:21
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: Consulta con ArrayList

Pues es muy sencillo, sólo tienes que ir recorriendo el arraylist.

Código Java:
Ver original
  1. ArrayList<String> amortizacionList = cronograma.getAmortizacionList();
  2.  
  3. if (amortizacionList!= null){
  4.  for(int i=0;i<amortizacionList.size();i++)
  5.  {
  6.   String amortizacion = amortizacionList.get(i);
  7.   if (amortizacion != null)
  8.   {
  9.    amortizacionList.set(i,Funciones.formatearMonto(Double.parseDouble(amortizacion)));
  10.   }
  11.  }
  12. }
  #5 (permalink)  
Antiguo 23/05/2012, 13:22
 
Fecha de Ingreso: febrero-2012
Ubicación: Lima
Mensajes: 64
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Consulta con ArrayList

MUCHAS GRACIAS!!!!
me sirvio todo el codigo q pusiste!!!! te pasaste!!! no hay duda de este foro voy a aprender muchisimo... gracias nuevamente!

Etiquetas: arraylist, string
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 21:21.