我正在使用Redis排序集来实现我的游戏的排行榜,其中我按降序显示用户排名.我陷入了两个或更多用户具有相同分数的情况.所以在这种情况下,我希望获得得分的用户排名更高.例如,我在Redis中添加以下条目.
127.0.0.1:6379> zadd testing-key 5 a
(integer) 1
127.0.0.1:6379> zadd testing-key 4 b
(integer) 1
127.0.0.1:6379> zadd testing-key 5 c
(integer) 1
Run Code Online (Sandbox Code Playgroud)
当我以相反的顺序查询等级时,我得到了这个
127.0.0.1:6379> zrevrange testing-key 0 10
1) "c"
2) "a"
3) "b"
Run Code Online (Sandbox Code Playgroud)
但就我而言,排名应该是这样的
1) "a"
2) "c"
3) "b"
Run Code Online (Sandbox Code Playgroud)
那么Redis中是否有任何规定给予以相同分数首先进入集合的实体更高的优先级?
我有一个 IP 文件,每一行都有两个或三个逗号分隔的 IP,例如 -
ip x 171.48.179.64, 194.88.105.83, 10.121.15.191
ip x 122.176.17.76, 194.88.105.83, 10.121.15.191
ip x 223.179.196.169, 10.121.15.135
ip x 157.41.161.64, 10.121.15.135
ip x 49.14.160.119, 10.121.15.191
ip x 157.41.230.108, 10.121.15.191
ip x 101.208.189.88, 194.88.105.83, 10.121.15.191
ip x 180.215.137.150, 194.88.105.83, 10.121.15.191
ip x 157.41.161.64, 10.121.15.191
ip x 157.41.161.64, 10.121.15.191
Run Code Online (Sandbox Code Playgroud)
所以我想 grep 包含两个逗号(三个 IP)的行,例如 -
ip x 171.48.179.64, 194.88.105.83, 10.121.15.191
ip x 122.176.17.76, 194.88.105.83, 10.121.15.191
ip x 101.208.189.88, 194.88.105.83, 10.121.15.191
ip x 180.215.137.150, 194.88.105.83, 10.121.15.191
Run Code Online (Sandbox Code Playgroud)
我搜索了很多,但没有得到任何具体的答案,请帮助我。
我在java collection util中面临一些问题,基本上我通过打破这些步骤在arrayList上使用了removeall ()但它抛出java.lang.UnsupportedOperationException,当我在单行中执行它时,它按预期正常工作.所以当我分几个步骤打破它时,我不明白是什么问题.代码是
public class Test4 {
public static void main(String args[]){
String unInstall="com.mobikwik_new,com.cleanmaster.mguard,com.htc.flashlight,com.mobilemotion.dubsmash";
String install="com.mobikwik_new,com.cleanmaster.mguard,com.htc.flashlight";
List<String> installList = new ArrayList<String>();
List<String> unInstallList = new ArrayList<String>();
String inL[] = install.split(",");
String UnInL[] = unInstall.split(",");
installList = Arrays.asList(inL);
unInstallList = Arrays.asList(UnInL);
unInstallList.remove(installList);
//List<String> installList = new ArrayList<>(Arrays.asList(install.split(",")));
//List<String> unInstallList = new ArrayList<>(Arrays.asList(unInstall.split(",")));
unInstallList.removeAll(installList);
System.out.println("unInstall : "+unInstallList);
}
}
Run Code Online (Sandbox Code Playgroud)
注意:当我只使用注释行而不是上述所有步骤时,它的工作正常
投掷的例外是 -
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(Unknown Source)
at java.util.AbstractList$Itr.remove(Unknown Source)
at java.util.AbstractCollection.removeAll(Unknown Source)
at …Run Code Online (Sandbox Code Playgroud)