使用 Java 找到与 属性 值匹配的唯一对象 7

find Unique Object matching a property value using Java 7

我有一个实体列表,所有实体都有唯一名称,目前要获得唯一值,我正在使用实体名称和实体对象的 MAP。我不想仅仅为了过滤目的而使用地图。

我找到了一个 ,但它的用法是 Java-8.

Google Guava com.google.common.collect.Sets.filter() 中有一个 API,但它 returns 集合,在这种情况下我必须得到第 0 个元素。

谁能提出更好的方法。

试试下面的方法:

public static Entity findByName(String name, List<Entity> entities) {
        if (entities!= null && name != null) {
            for (Entity e : entities) {
                if (name.equals(e.getName())) {
                    return e;
                }
            }
        }
        return null;
    }

使用 Map 方法可以节省时间,因为查找时间减少了,但会占用内存。

如果您对 Guava 持开放态度,请尝试以下方法:

Optional<Entity> result = FluentIterable.from(entityList).firstMatch(new Predicate<Entity>() {
  @Override
  public boolean apply(Entity entity) {
    return entity.getName().equals(input);  //Input can be from variable in function definition
  });
);

类似这样的事情,可以解决。