相关疑难解决方法(0)

如何通过多个字段比较对象

假设您有一些具有多个字段的对象,可以通过以下方式进行比较:

public class Person {

    private String firstName;
    private String lastName;
    private String age;

    /* Constructors */

    /* Methods */

}
Run Code Online (Sandbox Code Playgroud)

所以在这个例子中,当你问:

a.compareTo(b) > 0
Run Code Online (Sandbox Code Playgroud)

你可能会问b的姓氏是否在b之前,或者a是否早于b,等等......

在不增加不必要的混乱或开销的情况下,在这些类型的对象之间进行多重比较的最简洁方法是什么?

  • java.lang.Comparable 界面允许仅通过一个字段进行比较
  • 在我看来compareByFirstName(),添加大量的比较方法(例如compareByAge(),等等)是混乱的.

那么最好的方法是什么呢?

java oop

214
推荐指数
12
解决办法
36万
查看次数

使用部分密钥进行多键映射搜索/过滤

我的问题类似于部分多键映射的数据结构?.

我有键值对,其中键由三个组件(字符串)组成.

我正在寻找一种数据结构,可以有效地对密钥执行搜索查询,其中查询可以是完整的或部分地指定密钥(省略一个或多个组件).例如:

(x, y, z)
(x, *, *)
(*, y, *)
etc.
Run Code Online (Sandbox Code Playgroud)

密钥的未指定部分可以位于密钥的前部,中部或末端.

我的当前实现(将所有可能的部分键映射到与该部分键匹配的一组值的哈希映射)在插入,删除和更新值时非常慢.

algorithm data-structures

7
推荐指数
1
解决办法
1016
查看次数

标签 统计

algorithm ×1

data-structures ×1

java ×1

oop ×1