views:

892

answers:

5

I cant find any sorting function in the java API for vectors. Collections.sort is only for List and not for Vector

I dont want to write my own sorting algo because I think java should implement this

Im looking for something like, class ClassName implements Comparator ...

ClassName cn; sort(cn);

+10  A: 

Vector implements List, so Collections.sort would work.

jsight
+8  A: 

As per the API docs, Vector just implements List, so I don't forsee problems. Maybe your confusion was caused because you declared Vector according the old Java 1.0 style:

Vector vector = new Vector();

instead of the declaring it aginst the interface (which is considered good practice):

List list = new Vector();

You can thus just make use of Collections#sort() to sort a collection, Comparable to define the default ordering behaviour and/or Comparator to define an external controllable ordering behaviour.

Here's a Sun tutorial about ordering objects: http://java.sun.com/docs/books/tutorial/collections/interfaces/order.html

Here's another SO answer with complete code examples: http://stackoverflow.com/questions/1814095/sorting-an-arraylist-of-contacts/1814112#1814112

That said, why are you still sticking to the legacy Vector class? If you can, just replace by the improved ArrayList which was been designed as replacement of Vector more than a decade ago.

BalusC
+3  A: 

According to the Java API Specification for the Vector class, it implements the List interface which is needed to use the Collections.sort method.

Also, as a note, for most uses the Vector class could be replaced by using one of the List implementations in the Java Collections Framework, such as ArrayList. The Vector class is synchronized, so unless there is a real need for synchronized access one should use one of the other List implementations.

coobird
+2  A: 

Vector is a List

LES2
A: 

Thanks, now i am using List l = new ArrayList(); I am used to C++ so thats why i was using a Vector.

Hidayat