假设您有一些具有多个字段的对象,可以通过以下方式进行比较:
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(),等等)是混乱的.那么最好的方法是什么呢?
我的问题类似于部分多键映射的数据结构?.
我有键值对,其中键由三个组件(字符串)组成.
我正在寻找一种数据结构,可以有效地对密钥执行搜索查询,其中查询可以是完整的或部分地指定密钥(省略一个或多个组件).例如:
(x, y, z)
(x, *, *)
(*, y, *)
etc.
Run Code Online (Sandbox Code Playgroud)
密钥的未指定部分可以位于密钥的前部,中部或末端.
我的当前实现(将所有可能的部分键映射到与该部分键匹配的一组值的哈希映射)在插入,删除和更新值时非常慢.