在我的应用程序中,我有带有唯一键的小表(文件)(其中大多数有两个或多个字段 - 组合键)。我想为每个小表创建一个类并将数据加载到 java 集合中。该对象将读取文件并将数据加载到 java 集合中。然后,我想通过键值从该集合中获取数据,以便我可以访问所有字段。我的问题是我应该使用哪个集合或者说哪个集合支持多个键?一个例子的链接会很棒。提前致谢!
最佳答案
假设我正确阅读了您的问题(关于“多个键”存在一些含糊之处),您想要的是为键本身定义一个包含多个字段并实现 equals()
的类和 hashCode()
,这样对象就可以用作 HashMap
键。
这是一个非常简单的框架实现(未经测试,省略了一些错误处理):
public class MyKey
{
private String part1 = null;
private Integer part2 = null;
public MyKey(String part1, int part2)
{
this.part1 = part1;
this.part2 = part2;
}
@Override
public boolean equals(Object o)
{
if (o == null || !(o instanceof MyKey)) return false;
return this.part1.equals(((MyKey)o).part1) && this.part2.equals(((MyKey)o).part2);
}
@Override
public int hashCode()
{
return this.part1.hashCode() + this.part2.hashCode();
}
}
关于java - 哪个 Java Collection 最适合这种情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9848364/