java sortedsett 数据存在后会覆盖吗




1.单独写一个比较器比写一个类实現接口要好可以重复利用,不需要改动product功能类


2.匿名内部类不推荐使用因为比较器无法得到重复利用



//创建TreeSet集合的时候提供一个比较器


//因為比较器是接口,不能创建对象所以要有一个实现类






//强制类型转换来调用函数里price变量,再来比较



































//单独编写一个比较器



//强制类型转换来调鼡函数里price变量再来比较











java sortedsett和set类型极为类似它们都是字符串的集合,都不允许重复的成员出现在一个set集合中它们之间的主要差别是java sortedsett中的每一个成员都会有一个分数(score)与之关联,redis正是通过分数來为集合指那个的成员进行从大到小的排序然而需要额外指出的是尽管java sortedsett中的成员必须是唯一的,但是分数却是可以重复的

在java sortedsett中添加、刪除或更新一个成员都是非常快速的操作。其时间复杂度为集合中成员数量的对数由于java sortedsett中的成员在集合中的位置是有序的。因此即便昰访问位于集合中部的成员也仍然是非常高效的。

游戏排名、微博热点话题等使用场景

将所有成员以及该成员的分数存放到java sortedsett中如果该元素已经存在,则会用心的分数替换原有的分数返回值时新加入到集合中的元素个数,不包含之前已经存在的元素

移除集合中指定的成員,可以指定多个成员

获取集合中下标为stert到end的成员[withscore]参数表名返回的成员包含其分数。
按照元素分数从大到小的顺序返回下标从start到stop之间的所有元素包含两端的元素,[withscore]参数表名返回的成员包含其分数
设置指定成员的增加的分数,返回值是更改后的分数
获取分数在[min,max]之间的成員

从小到大返回成员在集合中的排名

从大到小返回成员在集合中的排名


获取所有域pattern匹配的key*表示任意一个或多个字段,表示一个字符、

判断该key是否存在,1代表存在0代表不存在

设置过期时间,单位是秒

获取该key剩的超时时间如果没有设置超时,返回-1如果返回-2表示超时不存在
获取指定key的类型,该命令将以字符串的格式返回返回的字符串是string、lsit、set、hash、zset。如果key不存在返回none

我要回帖

更多关于 sortedset 的文章

 

随机推荐