Java组合有序集合
假设我有一个列表,上面有一对值——姓名、排名
A = [ ('john',4), ('doe',7) .... ]
B = [ ('john',4), ('carmack',2) .....]
...
我想把上面的列表合并成一个集合,在这个集合中排名已经被合并,即
Combined = [ ('carmack',2),('john',4),('doe',7) ]
在sql术语中,这等于
SELECT * FROM (
SELECT * FROM A
UNION
SELECT * FROM B
UNION
....
) ORDER BY RANK
在Java中,最有效的方法是什么?我正在考虑将值放入映射中,并根据键对映射进行排序
# 1 楼答案
您可以使用
TreeMap
,它允许您在其实例化中指定一个Comparator
,并将基于此比较器对元素进行排序,如果您希望排除重复项,则使用TreeSet
资料来源:SortedMap Javadocs