可以使用什么函数对Vector进行排序?

Hid*_*yat 20 java sorting vector

我无法在java API中找到矢量的任何排序函数. Collections.sort只是为了List<T>而不是为了Vector<T>.

我不想编写自己的排序函数,因为我认为java应该实现它.

我正在寻找类似的东西:

class ClassName implements Comparator<ClassName> ..
ClassName cn = ..;
sort(cn);
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 28

根据API文档,Vector只是实现List,所以我不会预见到问题.也许你的混乱是因为你Vector根据旧的Java 1.0风格声明:

Vector vector = new Vector();
Run Code Online (Sandbox Code Playgroud)

而不是声明它aginst接口(这被认为是良好的做法):

List list = new Vector();
Run Code Online (Sandbox Code Playgroud)

因此,您可以使用对Collections#sort()集合进行排序,Comparable定义默认排序行为和/或Comparator定义外部可控排序行为.

这是一个关于订购对象的Sun教程.

这是完整代码示例的另一个SO答案.

那就是说,为什么你仍然坚持遗产 Vector类?如果可以,只需用十多年前ArrayList设计的替代品替换Vector.


jsi*_*ght 15

Vector实现List,所以Collections.sort可以工作.


coo*_*ird 5

根据Vector该类的Java API规范,它实现了List使用该Collections.sort方法所需的接口。

另外,请注意,对于大多数用途,Vector可以使用ListJava Collections Framework中的一种实现来替换该类,例如ArrayList。该Vector班是同步的,所以除非有同步访问应该使用其他的一个真正需要List的实现。