gpt4 book ai didi

java - Map 找不到键

转载 作者:行者123 更新时间:2023-11-29 06:44:18 26 4
gpt4 key购买 nike

我有以下代码:

List<Pattern> patterns = Lists.newArrayList(Pattern.compile("blah"), Pattern.compile("blah2"));
Map<Pattern, String> map = new HashMap<Patter, String>();
map.put(patterns.get(0), "1");
map.put(patterns.get(1), "2");

Assert.assertTrue(map.containsKey(patterns.get(0)));

断言失败!

为什么会这样?首先,令我感到惊讶的是 Pattern 类没有基于模式实现 equalshashCode。但即使没有,Object 也不会使用 hashCodeequals 的内存地址,所以只要我通过同一个Object实例,应该找到key?

编辑:对不起各位。这是我实际拥有的。忘记了 transform 会在每次访问完成时创建一个新实例。

List<Pattern> patterns = Lists.transform(Lists.newArrayList("blah1", "blah2"), toPattern);

最佳答案

鉴于您的代码无法编译,我只能假设这不是您正在运行的代码。

List<Pattern> patterns = Arrays.asList(Pattern.compile("blah"), Pattern.compile("blah2"));
Map<Pattern, String> map = new HashMap<Pattern, String>();
map.put(patterns.get(0), "1");
map.put(patterns.get(1), "2");

System.out.println(map.containsKey(patterns.get(0)));

打印

true

关于java - Map<Pattern, Object> 找不到键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7660823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com