Java ArrayList vs HashSet vs HashMap以及有关数据结构设计的问题
我需要创建3个数据结构 第一个是人员集合(人员登记): 第二种是保险集合(保险登记簿): 第三个是索赔集合(索赔登记): 每个对象都重写了equals()和hashCode()方法 由于旧数据将用于统计等,所以不需要删除任何数据结构 数据结构不包含重复项也很重要 将在这些数据结构上使用的方法包括:Java ArrayList vs HashSet vs HashMap以及有关数据结构设计的问题,java,arraylist,data-structures,hashmap,hashset,Java,Arraylist,Data Structures,Hashmap,Hashset,我需要创建3个数据结构 第一个是人员集合(人员登记): 第二种是保险集合(保险登记簿): 第三个是索赔集合(索赔登记): 每个对象都重写了equals()和hashCode()方法 由于旧数据将用于统计等,所以不需要删除任何数据结构 数据结构不包含重复项也很重要 将在这些数据结构上使用的方法包括: 查找特定人员的保险/索赔ID 查找在给定时间范围内提交的所有索赔/保险 根据personId或personalNumber查找一个人 查找具有特定姓氏的所有人员 查找特定人员的所有有效保险 查找特定
- 查找特定人员的保险/索赔ID
- 查找在给定时间范围内提交的所有索赔/保险
- 根据personId或personalNumber查找一个人
- 查找具有特定姓氏的所有人员
- 查找特定人员的所有有效保险
- 查找特定子类类型的所有保险/索赔(例如,CarInsurance或HomeInsurance,两者都是保险的子类)
编辑:被链接为可能重复的问题,但是该线程仅解释HashSet和HashMap之间的区别,并链接到Oracles Collection教程。我知道其中的大部分差异。我还阅读了《收藏教程》。但由于结构的广泛使用,我仍然很难找到最合适的集合。我的主要目标是考虑如何实现最佳的数据结构设计。如果我不清楚,很抱歉。我建议使用哈希集存储各种对象的列表。还要使对象(Person等)实现可比较,这样您就可以重写compareTo方法并使用它对哈希集进行排序。说到排序,您可以简单地使用Collections.sort()方法,该方法还可以使用一个比较器进行自定义排序 可能重复的
public Person {
private final int uniquePersonId; // Unique identifier
private long personalNumber;
private String name;
// additional code
}
public Insurance {
private final int uniqueInsuranceId; // Unique identifier
private int uniquePersonId; // Is used as a link between the insurance and person
private Date date;
private boolean active;
// additional code
}
public Insurance {
private final int uniqueClaimId; // Unique identifer
private int uniquePersonId; // Is used as a link between the claim and person
private Date date;
// additional code
}