treemap-排行榜如果用TreeMap的话,出现并列排名如何处理?

问题描述

排行榜如果用TreeMap的话,出现并列排名如何处理?

例如金钱排行榜,用拥有的金钱作为key.
如果出现了相同的金钱的话那么key值就会重复.
我曾考虑在value上使用List保存相同的排名,
但是这会增加使用ceilingKey等函数的使用复杂度

解决方案

建议你封装把成绩和金钱封装成对象,用TreeSet来处理,自己实现比较器,然后直接迭代就可以了。

时间: 2024-08-02 07:24:14

treemap-排行榜如果用TreeMap的话,出现并列排名如何处理?的相关文章

为List添加排序的函数处理并列排名情况(上篇)

今天.做了个排名显示的功能. 需要处理并列的情况.. 首先相到了 SQL SERVER2005 的的Rank 函数 .. 后来想是否可以为List<T> 实现一个扩展方法 实现并列排名.. 想了想 可以实现 .. 有这个想法就来实现吧.. 我的想法是 List<T> 调用Rank方法后 T类型就多了个属性 用来获取 名次.. 但是怎么为T类型动态添加属性 .. 我想到了动态创建一个类型.. .net 可以动态的创建一个类型.. . 有2总方式(我只知道2总...我还想到了个动态构造

GridView中实现并列排名的例子[access版]

<%@ Page Language="C#" AutoEventWireup="true" Debug="true" %> <%@ Import Namespace="System.Data" %> <script runat="server"> public int TrapezoidIndex = 1; int LastNumer = 0; protected voi

GridView中实现并列排名的例子 SQL Server版

SQL Server数据库版本 <%@ Page Language="C#" AutoEventWireup="true"%> <script runat="server"> public int TrapezoidIndex = 1; int LastNumer = 0; protected void Page_Load( object sender, EventArgs e ) { string ConnectionS

为List添加排序的函数 处理并列排名情况(下篇)

在上篇文章中 我们完成了动态创建类型.动态设置值.动态获取值.动态获取属性和返回值的一些方 法 准备工作完成了.. 我们现在来完成排序的功能 实现方式肯定还是扩展方法.. 实现比较2个值的方法 我们可以给用户提供. 我们不提供比较的方法 这样设计灵活性更好.. 用户提供方法?? 怎么实现 很简单 2种方式 一种使用接口.. 另外一种使用的是委托.. 我比较喜欢委托 我就使用委托的方式 .NET 中有预定于的委托 Comparison<T> 类型的委托 当然.NET 也定义了IComparer&

Java集合源码剖析:TreeMap源码剖析

前言 本文不打算延续前几篇的风格(对所有的源码加入注释),因为要理解透TreeMap的所有源码,对博主来说,确实需要耗费大量的时间和经历,目前看来不大可能有这么多时间的投入,故这里意在通过于阅读源码对TreeMap有个宏观上的把握,并就其中一些方法的实现做比较深入的分析. 红黑树简介 TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序树,关于二叉排序树,参见:http://blog.csdn.net/ns_code/article/details/1982

Java集合学习(十二) TreeMap详细介绍(源码解析)和使用示例

这一章,我们对TreeMap进行学习. 第1部分 TreeMap介绍 TreeMap 简介 TreeMap 是一个有序的key-value集合,它是通过红黑树实现的. TreeMap继承于AbstractMap,所以它是一个Map,即一个key-value集合. TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法.比如返回有序的key集合. TreeMap 实现了Cloneable接口,意味着它能被克隆. TreeMap 实现了java.io.Serializabl

Java Core系列之TreeMap实现详解

因为看EHCache中溢出文件的管理代码,它用到了AA-Tree作为文件中的磁盘管理,因而决定先复习以下红黑树(RBT, Red Black Tree),顺便看看TreeMap的代码.关于红黑树,网上已经有各种相关的文章了,因而属于多一篇不多,少一篇不少的状态,因而我纯粹当作是我自己理解的纪录,加深印象,如果能对部分思路和我类似的人有一些帮助,那就最好了.基于这样的目的,我并不打算深入,如果想看更深入的或者更好的,可以读读我最后的参考链接. 红黑树引入的目的 首先要从对有序序列的查找问题开始,对

java集合类TreeMap和TreeSet及红黑树

看这篇博客前,我觉得很有必要先看下我之前的几篇博客 Red-Black Trees(红黑树)                                         (TreeMap底层的实现就是用的红黑树数据结构) 探索equals()和hashCode()方法                                 (TreeMap/TreeSet实现使用到的核心方法) java中的HashTable,HashMap和HashSet      (同为java集合类,对比下他们

java中treemap和treeset实现(红黑树)

TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点. TreeSet 和 TreeMap 的关系 为了让大家了解 TreeMap 和 TreeSet 之间的关系,下面先看 TreeSet 类的部分源代码: public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializab