java scan map_JAVA Map集合

import java.util.HashMap;

import java.util.Scanner;

public class Demo01Map {

public static void main(String[] args) {

//1,使用Scanner获得用户输入的字符串

Scanner scanner = new Scanner(System.in);

System.out.println("请输入一个字符串");

String str = scanner.next();

//2,创建Map集合,kep是字符串的字符,value是字符的个数

HashMap map =new HashMap<>();

//3,4

for(char c :str.toCharArray()){

if(map.containsKey(c)){

Integer value =map.get(c);

value++;

map.put(c,value);

}else{

map.put(c,1);

}

}

for(Character key :map.keySet()){

Integer value = map.get(key);

System.out.println(key+"="+value);

}

}

}

在使用 Spring Data Redis 框架进行模糊查询时,可以使用 RedisTemplate 的 execute 方法,结合 Redis 的 SCAN 命令来实现。具体实现步骤如下: 1. 定义一个 RedisCallback 接口,并实现 doInRedis 方法,用于在 Redis 中执行 SCAN 命令。 ``` public class ScanCallback implements RedisCallback<List<Map.Entry<Object, Object>>> { private final String keyPattern; private final String fieldPattern; public ScanCallback(String keyPattern, String fieldPattern) { this.keyPattern = keyPattern; this.fieldPattern = fieldPattern; } @Override public List<Map.Entry<Object, Object>> doInRedis(RedisConnection connection) throws DataAccessException { List<Map.Entry<Object, Object>> result = new ArrayList<>(); ScanOptions options = ScanOptions.scanOptions().match(fieldPattern).build(); byte[] cursor = ScanOptions.SCAN_POINTER_START; while (true) { Cursor<Map.Entry<byte[], byte[]>> scan = connection.hScan(keyPattern.getBytes(), cursor, options); while (scan.hasNext()) { Map.Entry<byte[], byte[]> entry = scan.next(); result.add(new AbstractMap.SimpleEntry<>(new String(entry.getKey()), new String(entry.getValue()))); } cursor = scan.getCursorAsBytes(); if (scan.isClosed()) { break; } } return result; } } ``` 2. 在业务逻辑代码中,使用 RedisTemplate 的 execute 方法执行 SCAN 命令,同时调用 ScanCallback 实现类的 doInRedis 方法来获取满足条件的 KV 对集合。 ``` @Component public class RedisService { @Autowired private RedisTemplate<String, String> redisTemplate; public List<Map.Entry<Object, Object>> getKVList(String keyPattern, String fieldPattern) { RedisCallback<List<Map.Entry<Object, Object>>> callback = new ScanCallback(keyPattern, fieldPattern); return redisTemplate.execute(callback); } } ``` 执行完成后,getKVList 方法会返回满足条件的 KV 对集合。其中,keyPattern 是 Redis 中要进行模糊查询的 key,fieldPattern 是要匹配的 field 名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值