我将哈希值保存在redis(jedis)中,如下所示:
并使用“Set set = jedis.hkeys(sampleKey)”获得一个集合,然后通过System.arraycopy转换为Array。
我检查了数组,数据存储起来就像“01235::Test,01234::Real,01235::Real,01234::Test”。它没有按顺序存储。
我需要按顺序获取数据。
谁能在这里给我帮助!谢谢。
最佳答案
尝试使用TreeSet而不是通用Set。
您很有可能无法直接投射它,但是您可以尝试:
TreeSet<String> set = new TreeSet<>();
按字段订购:
set.addAll(jedis.hkeys(sampleKey));
按值订购:
set.addAll(jedis.hvals(sampleKey));
在TreeSet中,值按顺序存储。对于自定义对象,您必须实现Comparable,但是对于基元,您无需执行任何操作。
注意:请记住,顺序对于字符串是区分大小写的,因为您使用数字是没有问题的,但是如果您使用单词,它将大写的单词放在前面。
关于java - 在Java中,如何从Redis hkeys(key)获取有序Set?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36494514/