使用对象的属性作为地图条目的键是不好的做法吗?每次我这样做,都会感觉不对。
例如:
class Foo {
String name;
String bar;
}
然后使用这样的地图:
Foo foo = new Foo();
foo.name = "foo bar";
foo.bar = "blaaaa";
Map<String, Foo> foos = new HashMap<>();
foos.add(foo.name, foo);
感觉有点不对劲。
答案 0 :(得分:1)
乍一看感觉不对。
但是使用键字段是合理的,可能有点多余但合法。
键的值来自何处并不重要!因为Map
的目的是检索元素。并且这样做可以做到这一点。
如果您感到内疚,如果没有任何副作用,您可以从课程中删除该字段。
可能有什么问题 - 你没有使用这些领域的方法。请考虑以下场景:您想将两个字符串组合为新键。如果你已经引用了一千个字段,那你就不走运了!您只需要替换该字段的所有出现。如果您不小心更换了其他内容,这可能会导致错误和不便。
但是如果你有一个方法,你只需更改方法中的部分就可以了。