之前面试的时候,被人问到过,如果让你用Java来实现redis的SortedSet,你会使用哪一个类,然后我在我的脑海里面思索能用来排序的类,最后只想到了Treemap,但是很明显,这个答案是错误的,TreeMap是按照key的自然顺序进行排序的,而并非像SortedSet那样按照value进行排序。
其实java中也有一个SortedSet,很明显,看名字就知道,它就是和redis中的那个SortedSet是一个意思。但是Java中的SortedSet是个接口。看看源码。
public interface SortedSet<E> extends Set<E>
那么我们就要去找它的实现类,TreeSet.
public class TreeSet<E> extends AbstractSet<E>
implements NavigableSet<E>, Cloneable, java.io.Serializable
用这个类就可以实现SortedSet的功能,所以现在让我来回答当初面试官的问题,我就会说TreeSet,在我们java中,有TreeSet和TreeMap,它们都是用树实现的,树的排序性能比较好,都可以很方便的实现排序的功能。
下面就来写一个demo来看一下。
public class TestSet {
public static void main(String[] args) {
SortedSet<I