多种方法判断Map<String, String>中是否包含特定的key、模糊匹配来检查Map中是否包含特定的值

 1、使用containsKey()方法来判断Map<String, String>中是否包含特定的key。

Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");

String specificKey = "key1";
boolean containsKey = map.containsKey(specificKey);
System.out.println("是否包含指定的key:" + containsKey);

 2、模糊匹配来检查Map中是否包含特定的值,你需要遍历Map的所有value,并逐一与给定的值进行比较。

Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");

String specificValue = "value1";
boolean containsValue = false;

for (String value : map.values()) {
    if (value.contains(specificValue)) {
        containsValue = true;
        break;
    }
}

System.out.println("是否模糊匹配到指定的值:" + containsValue);

3、使用正则表达式来进行模糊匹配。

import java.util.Map;
import java.util.HashMap;
import java.util.regex.Pattern;

public class MapFuzzyMatchingExample {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("key1", "value1");
        map.put("key2", "value2");

        String regex = ".*value.*";
        Pattern pattern = Pattern.compile(regex);

        boolean containsFuzzyValue = map.values().stream()
                .anyMatch(value -> pattern.matcher(value).matches());

        System.out.println("是否模糊匹配到指定的值:" + containsFuzzyValue);
    }
}

4、如果需要更复杂的模糊匹配逻辑,可以自定义匹配函数。你可以使用Lambda表达式或自定义函数接口,对每个value进行逐一判断。

import java.util.Map;
import java.util.HashMap;

@FunctionalInterface
interface FuzzyMatchingStrategy {
    boolean matches(String value);
}

public class MapFuzzyMatchingExample {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("key1", "value1");
        map.put("key2", "value2");

        String specificValue = "value";

        FuzzyMatchingStrategy strategy = value -> value.contains(specificValue);

        boolean containsFuzzyValue = map.values().stream()
                .anyMatch(strategy::matches);

        System.out.println("是否模糊匹配到指定的值:" + containsFuzzyValue);
    }
}

 5、使用Apache Commons Lang库的StringUtils类。

import org.apache.commons.lang3.StringUtils;

import java.util.Map;
import java.util.HashMap;

public class MapFuzzyMatchingExample {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("key1", "value1");
        map.put("key2", "value2");

        String specificValue = "value";

        boolean containsFuzzyValue = map.values().stream()
                .anyMatch(value -> StringUtils.containsIgnoreCase(value, specificValue));

        System.out.println("是否模糊匹配到指定的值:" + containsFuzzyValue);
    }
}

 6、使用Java 8的Stream API和Lambda表达式。

import java.util.Map;
import java.util.HashMap;

public class MapFuzzyMatchingExample {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("key1", "value1");
        map.put("key2", "value2");

        String specificValue = "value";

        boolean containsFuzzyValue = map.values().stream()
                .anyMatch(value -> value.toLowerCase().contains(specificValue.toLowerCase()));

        System.out.println("是否模糊匹配到指定的值:" + containsFuzzyValue);
    }
}

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值