elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  TreeSet invertir su orden natural
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: TreeSet invertir su orden natural  (Leído 6,779 veces)
mgc

Desconectado Desconectado

Mensajes: 30


Ver Perfil
TreeSet invertir su orden natural
« en: 15 Abril 2014, 19:53 pm »

Buenas,

Tengo la siguiente duda, yo tengo una colección TreeSet y quería que me mostrase los elementos en el orden inverso de los que lo ordena.

El profesor me ha comentado que podría utilizar la interfaz comparator, creando una clase para comparar los elementos. El problema es que el método para comparar es para listas, por lo tanto no me vale.

Yo he elegido TreeSet porque un requisito del enunciado del problema, dice que los elementos no pueden estar duplicados.

En resumen es que no sé cómo hacerlo de ninguna de las maneras, a ver si alguien me puede ayudar. :huh:

Gracias de antemano y saludos.


En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: TreeSet invertir su orden natural
« Respuesta #1 en: 15 Abril 2014, 20:06 pm »

Intenta con los métodos

Código
  1. descendingSet()
En este caso tendrás que crear una TreeSet auxiliar además de la clase Iterator.

Código
  1. descendingIterator()
En este caso solo tendrás que hacer uso de la clase Iterator

Edito.

Si entendí bien debe ser algo así.

Código
  1. import java.util.Iterator;
  2. import java.util.TreeSet;
  3.  
  4. /**
  5.  *
  6.  * @author 1mpuls0
  7.  */
  8. public class TreeSetReverseDemo {
  9.    public static void main(String[] args) {
  10.     TreeSet <String>treeadd = new TreeSet<String>();
  11.     TreeSet <String>treereverse = new TreeSet<String>();
  12.  
  13.     treeadd.add("1mpuls0");
  14.     treeadd.add("S");
  15.     treeadd.add("F");
  16.     treeadd.add("01");
  17.  
  18.     treereverse=(TreeSet)treeadd.descendingSet();
  19.  
  20.     Iterator iterator;
  21.     iterator = treereverse.iterator();
  22.  
  23.     System.out.println("Tree set: ");    
  24.     while (iterator.hasNext()){
  25.        System.out.println(iterator.next() + " ");
  26.     }
  27.   }    
  28. }
  29.  


« Última modificación: 3 Septiembre 2015, 18:31 pm por 1mpuls0 » En línea

abc
mgc

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: TreeSet invertir su orden natural
« Respuesta #2 en: 15 Abril 2014, 20:20 pm »

Parece casualidad, acabo de poner la duda y consigo hacerlo....

Muchas gracias por tu respuesta, dejo aquí mi solución por si a alguien le pudiese servir. 

método para comparar números

Código:
public int compare(String o1, String o2) {
         long p1=Long.parseLong(o1);
         long p2=Long.parseLong(o2);
        if (p1<p2) return 1;
        else if(p1>p2) return -1;
        else return 0;
       
     }

En el momento de crear el TreeSet paso el comparador por parámetro de la siguiente manera:

Código:
numeros=new TreeSet<String>(new ComparadorNumeros());
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
java y su treeset!!
Java
Mr.Zeros0 1 3,305 Último mensaje 12 Noviembre 2005, 00:28 am
por Casidiablo
TreeMap o TreeSet
Java
IMAC 1 10,133 Último mensaje 1 Junio 2008, 09:43 am
por sirdarckcat
Dragon Natural Speaking
Software
Sharkast 1 2,215 Último mensaje 13 Mayo 2010, 11:02 am
por eduxer
Boton que agrega un objeto a un treeset
Java
Aeros 6 4,699 Último mensaje 17 Agosto 2010, 15:49 pm
por Aeros
invertir el orden de un vector
Programación C/C++
indict 2 3,543 Último mensaje 22 Junio 2013, 17:34 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines