【发布时间】:2019-08-30 15:35:24
【问题描述】:
在 Java 中,HashSet 是未排序的,如下所示:
Set<Integer> set = new HashSet<>();
set.add(1);
set.add(4);
set.add(3);
set.add(2);
set.add(5);
set.forEach(e-> System.out.print(e+" "));
它的输出是:
1 2 3 4 5
当java set来自zset时,像这样:
redisTemplate.opsForZSet().add(key, 1, 0);
redisTemplate.opsForZSet().add(key, 4, 1);
redisTemplate.opsForZSet().add(key, 3, 2);
redisTemplate.opsForZSet().add(key, 2, 3);
redisTemplate.opsForZSet().add(key, 5, 4);
Set<Integer> set = redisTemplate.opsForZSet().range(key, 0, -1);
System.out.println(set.getClass());
set.forEach(e-> System.out.print(e+" "));
输出是:
java.util.HashSet
1 4 3 2 5
为什么此时输出保持顺序作为输入?
【问题讨论】:
标签: redis jedis spring-cache