use*_*988 4 java object hashmap map
Map<String, Data> map = new HashMap<String,Data>();
map.put("jan", new Data("RED","M4A1",5,0,0));
Run Code Online (Sandbox Code Playgroud)
如何更改数据对象的值RED?,而不是使用键从地图中获取所有信息并将其重新放入,如下所示:
map.put("jan" new Data("Blue",
map.get("jan").Brand,
map.get("jan").Storage,
map.get("jan").Sold,
map.get("jan").Bought));
Run Code Online (Sandbox Code Playgroud)
那么如何更改数据对象的1值而不是重做它们呢?
这取决于是否Data
可变.例如,您可以写:
Data data = map.get("jan");
data.setColor("Blue");
Run Code Online (Sandbox Code Playgroud)
不要忘记地图只包含对象的引用,因此如果更改对象中的数据,如果有人稍后从地图中获取引用,则会看到该更改.
或者如果它是不可变的,它可能有一个withColor
方法,所以你可以写:
Data data = map.get("jan");
map.put("jan", data.withColor("Blue"));
Run Code Online (Sandbox Code Playgroud)
如果不了解你的Data
类型(我希望这不是你班级的真实姓名),就很难再说了.
(我也希望你的班级没有真正的Pascal字段,我希望这些字段是私有的,但这是另一回事......)