• Viernes 8 de Noviembre de 2024, 13:32

Autor Tema:  metodo int en arraylist  (Leído 1034 veces)

pipelin85

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
metodo int en arraylist
« en: Jueves 6 de Agosto de 2009, 07:49 »
0
hola quisiera saber como hacer para hacer una operacion de > con dos posiciones de un arraylist esto es lo que tiene que hacer
if((resultados.get(i))>resultados.get(j)){ ... que haga tal cosa ... gracias... :argh:

gophlb

  • Visitante
Re: metodo int en arraylist
« Respuesta #1 en: Jueves 6 de Agosto de 2009, 09:48 »
0
dado que lo que obtendras sera un objeto (voy a suponer que comparas Integer, aunque supongo que sera igual para Double y etc):

.compareTo

eso si, antes de hacer la comparacion, tendras que hacer un casting para poder usar este metodo (obtienes un object, no un Integer), asi que te quedaria algo asi como:
int resultadoDeLaComparacion = ((Integer) miArrayList.get(i)).compareTo(((Integer) miArrayList.get(k)));
if (resultadoDeLaComparacion == 0) {} //valores iguales
if (resultadoDeLaComparacion < 0) {} //valor i < k
if (resultadoDeLaComparacion > 0) {} //valor i > k

si no, siempre puedes sacar el valor del arraylist al tipo que sea (seguiremos suponiendo numeros enteros, pero para los demas es exactamente igual):
int entero1 = ((Integer)miArrayList.get(i)).intValue();
int entero2 = ((Integer)miArrayList.get(k)).intValue();
y luego comparar entero1 y entero2

y finalmente hay una tercera opcion:
si no recuerdo mal, habia una version de java (no se si la 1.5) en la que en los arraylist, mapas y demas podia meterse y sacarse directamente tipos primitivos (int, double, etc) y luego internamente se hacia el cambio de primitivo a objeto (en el caso de introducir en la coleccion) y de objeto a primitivo (en el caso de sacar de la coleccion)


En cualquier caso, yo tiraria mas por el "compareTo" que supongo que sera bastante mas eficiente que cualquiera de las demas opciones.


para terminar, el javadoc del compareTo de Integer
--------------------------------------------------------------------------------------------------------------------
compareTo

public int compareTo(Object o)

    Compares this Integer object to another object. If the object is an Integer, this function behaves like compareTo(Integer). Otherwise, it throws a ClassCastException (as Integer objects are only comparable to other Integer objects).

    Parameters:
        o - the Object to be compared.
    Returns:
        the value 0 if the argument is a Integer numerically equal to this Integer; a value less than 0 if the argument is a Integer numerically greater than this Integer; and a value greater than 0 if the argument is a Integer numerically less than this Integer.
--------------------------------------------------------------------------------------------------------------------