java - 获取对象是否部分匹配的 boolean 值 (Java)

标签 java filter treeset

我认为这是一个简单的问题,如果我能找出搜索词来描述它的话。它类似于 Finding all objects that have a given property inside a collection除了我只想要一个 boolean 值“是否存在”结果。

假设我有一个猫的排序树集,每只猫都有名字、年龄、食物等。我需要为每个可能的猫名字做一些复杂的事情,但如果我的猫中已经有一只猫,我想跳过它具有该名称的 TreeSet。我不在乎其他任何属性是否匹配。我显然不能执行 if (!AlltheCats.contains(candidateName))... 因为那样我将在字符串 candidateName 和对象 Cat 之间出现类型不匹配。但我不认为我可以创建一个对象来搜索相同的匹配项,因为我不关心年龄、食物等的值。

执行此操作的高效/优雅方法是什么?

最佳答案

创建一个 HashSet包含名称的字符串,每次你在一只猫上调用你的方法时,首先检查它是否已经在集合中,如果是,则跳过这只猫。继续修改此集合。

(*)此答案假定您要为一只具有相同名称的猫 [而不是 0] 调用该方法。

应该看起来像这样:

    Set<String> names = new HashSet<String>();
    for (Cat c : set) { 
        if (names.contains(c.getName())) {
            continue;
        }
        names.add(c.getName());
        c.foo(); //your method here
    }

关于java - 获取对象是否部分匹配的 boolean 值 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7546438/

相关文章:

ElasticSearch post_filter 和过滤聚合的行为不同

grails - 从 Grails 中的过滤器辅助方法调用 render()

Java 8 默认方法与抽象类中的非抽象方法

java - 构建安卓应用 :I can sending data to database in localhost but not the same in online database

java - 初学者在 Java 中编写完成正方形时遇到困难

c# - Authorize Action 过滤器和 Authorization 过滤器有什么区别?

java - 如何迭代 Map.Entry 的 SortedSet

java - 这些 TreeSet 声明之间的区别

java - Java 中排序和删除重复项的最佳数据集是什么?

java - 用 Java 重用正在运行的进程 ||斯卡拉