Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > ayuda con programa

tengo un vector de libros y necesito implementar ordenamiento por hilos para que al pulsar sobre botón titulo se ordene por titulo, cundo lo haga por autor lo ordene por este, comolo podría hacer, gracias

octubre 19, 2014 | Unregistered Commentersteve

"tengo un vector de libros"... Vector es una clase del JDK, que está obsoleta. ¿A qué te refieres exactamente con "vector"?. Sigo sin entender por qué extraña razón no se usan los nombres de las clases, tal y como están especificadas en el lenguaje.

¿Qué es ese "libros"?. No se puede entender nada, sino se describe cómo está declarado e implementado.

"necesito implementar ordenamiento por hilos"... ¿Te refieres a que el ordenamiento debe hacerse en tareas paralelas?.

"para que al pulsar sobre botón titulo..." ¿Quieres decir que debe ejecutarse una tarea paralela, que realice el ordenamiento especificado?. No sé si te das cuenta de que no se puede ordenar una colección, o un array, de manera concurrente.
O bien ese ordenamiento se hace sobre una copia de la colección, o array, original, o simplemente no se puede realizar.

http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort(java.util.List)
"This implementation dumps the specified list into an array, sorts the array, and iterates over the list resetting each element from the corresponding position in the array. This avoids the n2 log(n) performance that would result from attempting to sort a linked list in place."

Los iteradores en Java no son thread-safe, más aún en este caso en el que se resetean los elementos.
Una excepción es el caso de CopyOnWriteArrayList; sin embargo no creo que funcione en este caso, porque aunque su iterador sea thread-safe, no se reflejarían los cambios en la List desde la declaración del iterador.

Información sobre ordenamiento:

http://docs.oracle.com/javase/tutorial/collections/interfaces/order.html
http://tutorials.jenkov.com/java-collections/sorting.html

octubre 19, 2014 | Registered Commenterchoces