java - secuencial - ordenamiento por seleccion c++
¿Qué función se puede usar para ordenar un Vector? (7)
Collections.sort (nameOfTheVectorToBeSorted); prueba esto con tu vector, que será ordenado.
No puedo encontrar ninguna función de clasificación en la API de Java para vectores. Collections.sort
es solo para List<T>
y no para Vector<T>
.
No quiero escribir mi propia función de clasificación porque creo que Java debería implementar esto.
Estoy buscando algo como:
class ClassName implements Comparator<ClassName> ..
ClassName cn = ..;
sort(cn);
De acuerdo con la especificación de API de Java para la clase Vector
, implementa la interfaz de List
que se necesita para usar el método Collections.sort
.
Además, como nota, para la mayoría de los usos, la clase Vector
podría reemplazarse mediante el uso de una de las implementaciones de listas en Java Collections Framework, como ArrayList
. La clase Vector
está sincronizada, por lo tanto, a menos que exista una necesidad real de acceso sincronizado, se debe usar una de las otras implementaciones de la List
.
De acuerdo con los documentos API , Vector
simplemente implementa List
, por lo que no preveo problemas. Tal vez tu confusión fue causada porque declaraste Vector
según el viejo estilo Java 1.0:
Vector vector = new Vector();
en lugar de declararlo contra la interfaz (que se considera una buena práctica):
List list = new Vector();
Por lo tanto, puede hacer uso de Collections#sort()
para ordenar una colección, Comparable
para definir el comportamiento predeterminado de ordenamiento y / o Comparator
para definir un comportamiento de ordenamiento externo controlable.
Aquí hay un tutorial de Sun sobre ordenar objetos.
Aquí hay otra respuesta SO con ejemplos completos de código.
Dicho esto, ¿por qué sigues apegándote a la clase Vector
heredada ? Si puede, simplemente reemplace por la ArrayList
mejorada que fue diseñada como reemplazo de Vector
más de una década.
No olvides agregar implements Comparable<>
en tu clase:
public class XXXX
implements Comparable<XXXX> {
}
Y para redefinir compareTo()
en su clase del tipo de objeto almacenado en su vector.
Obtuve este problema también, Eclipse IDE me decía que Collection.sort()
era solo para List<T>
. No podría hacer que funcione hasta que hice lo que acabo de decir.
Vector es una lista
Vector implements List, por lo que Collections.sort funcionaría.
Collections.sort(vector_name)
Clasificará el vector en su lugar, por lo que no necesita asignar el resultado del comando anterior al vector.
Esto funciona porque los Vectores son implementaciones de Listas.