当前位置: 首页 > 知识库问答 >
问题:

将size()添加到keySet()中,在一行中保留All之后

路金鑫
2023-03-14

我在试验视图。是否有可能在最后第二行编写size()方法而不使用lambdas??具体如下:

eintraege.retainAll(Arrays.asList(names)).size(); // Does not work


public static int countNames(Map<String, PhoneNumber> phoneBook,
                             String[] names) {
    Set<String> eintraege = phoneBook.keySet();
    eintraege.retainAll(Arrays.asList(names));  
    return eintraege.size();  // Works fine
}

共有1个答案

钱稳
2023-03-14

这个代码不能正常工作。

RetainAll将删除名称中没有的所有键。.keyset()不返回副本。它返回不同的视图。从.keyset()返回的内容中删除元素将从原始映射中删除它们!

因此,这段代码将给出正确的答案...也会损坏你的电话簿。

int count = 0;
for (String n : names) if (phoneBook.containsKey(n)) count++;
return count;
for (String n : phoneBook.keySet()) if (names.contains(n)) count++;

这将变得非常缓慢,尤其是当names较大时。

 类似资料:
  • 我有一个作为模板的电子表格,最后两行以某种特定的方式格式化(颜色和字体)。 它看起来像这样: 我想做的是插入尽可能多的“占位符”行,让最后一行“滑”下来。 到目前为止,我尝试了,它确实插入了新行,但不会向下移动最后一行的颜色。这样我就可以在电子表格中找到我想要的数据,但是颜色格式错误(基本上第三行总是有彩色背景,而最后一行没有)。 我想做的伪代码是: 计算我需要添加多少占位符行, 获取电子表格 剪

  • 问题内容: 我有一个关于将JPA与OneToMany关系(双向)以及CascadeType.ALL一起使用的问题。基于vlad post(https://vladmihalcea.com/a-beginners-guide-to-jpa-and-hibernate-cascade- types/ ),使用CascadeType.ALL保持OneToMany关系,也应该持续 但是,就我而言: 仅当我

  • ALL ALL 关键字被使用在这些上下文之中: ALL、DISTINCT、DISTINCTROW、TOP 谓词 SQL 子查询 UNION 运算

  • 问题内容: 我们有一列是一个简单的整数。我们要在每行中添加值10。我们如何在mysql中的sql中执行该操作? 实际上,我们还有另一列需要做同样的事情,这是一个日期。我们需要在日期上加上一个月。怎么做? 问题答案: 整数: 日期:

  • 问题内容: 我有以下Java代码,其中我试图将ArrayList复制到另一个ArrayList。 我希望“列表”数组采用以下格式: 但是从上面的代码中,“ list”数组输出看起来像这样: 我想您可能已经注意到了差异。我无法达到预期格式的结果。请建议我任何解决方案!提前致谢!! 问题答案: 然后,你需要的: 请注意,已更改为。在Java命名约定中,变量以小写字母开头。类以大写字母开头。

  • 我的任务是实现一个蛮力算法来输出一些n的整数[1,2,…, n]的所有排列。但是,我似乎在将ArrayList对象添加到HashSet时遇到了一些问题: 我发现对“nextPer的连续调用确实找到了所有排列,但是我不明白当我将排列添加到HashSet“allPer的排列”时会发生什么。我在n=3的情况下运行时得到的输出是这样的: [[3, 2, 1, 1, 2, 1, 1, 3, 1, 2], [