如果我需要捕获一个人的名字(名字、中间名和姓氏),我想到了以下可能性:
- 使用
Map<String, String>
姓名; - 使用单独的 Name 类。
如果我使用 map ,我可以像这样存储名称:
name.put("first", "xyz")
name.put("middle", "abc")
name.put("last", "nhf");
然后在 Person 类中:
class Person
{
Map<String, String> name;
//below write setter and getter for it.
}
如果我使用 Name 类,我可以像这样存储:
class Name
{
String first;
String middle;
String last;
//Below write setters and getters for them.
}
然后在 Person 类中:
class Person
{
Name name;
//below write setter and getter for it.
}
我想知道哪一种是更好的做法以及原因。另外如果还有其他更好的方法可以做到这一点。
最佳答案
map
非常具有灵 active 。也就是说,如果您不确切知道您将拥有什么 key 。例如,如果一个人有教名,另一个人有昵称,第三个人有父姓和母姓,那么 Map
可能有意义。在您的示例中,每个人都有名字、中间名和姓氏(尽管其中一些可能为 null?),因此映射只会增加冗余的复杂性(如线程中所述,内存消耗)。坦率地说,除非您将整个 Name
作为对象有一些特殊用途(例如,将其用作 map 中的键),否则我只需将三个字符串成员直接放置在 Person 中
类。
关于Java - 使用 HashMap 与使用单独的类存储名称字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40048274/