java - 如何返回HashMap对象字段

标签 java object hashmap

我目前在假日类(class)中有以下 HashMap。

假期类(class):

HashMap <String, Location> holidays = new HashMap<String, Location>();

这将创建 Location 类的实例,以允许显示更多字段。

位置类别:

public class Location {
private String locationName;
private String locationDesc;
private double price;
private int quantity;

public Location(String locationName, String locationDesc, double price) {
    this.locationName = locationName;
    this.locationDesc = locationDesc;
    this.price = price; 
    quantity = 0;
}

public String toString() {
    return (locationName + " | " + "£" + price);
}
public double getPrice() { return price; }
public String getLocationName() { return locationName; }
public String getLocationDesc() { return locationDesc; }
public int getQuantity() { return quantity; }
}

在我的 GUI 类中,我只使用 .get HashMap 方法,这将返回 toString。 例如

GUI 类

private Holiday holiday;
...
return holiday.holidays.get(--HashMap key here--);

这将返回 toString,即位置名称和价格。

但是。我还想在其他地方打印出 HashMap,但返回不同的字段。例如返回描述和数量以及位置名称和价格。我该怎么做呢?或者我如何从作为 HashMap 实例的 Location 类返回各个字段。

成功做到了这一点。但需要以下方面的帮助

<小时/>

第二次编辑:

我的 Location 类中有一个设置数量方法,用于设置每个假期的预订量。然而使用时;

for (Location location : holiday.holidays.values()) {
location.setQuantity(Integer.parseInt(textFieldQuantity.getText()));
}

当为每个位置设置不同的数量时,这会将所有假期更改为相同的数量。我该如何解决这个问题?

最佳答案

holidays.get(key)的结果应该是 Location 类型的对象。如果直接打印对象,如System.out.println(holidays.get(key))它将打印 toString() 的结果正如你所说。但由于您已经拥有该对象并可以访问其字段,因此您可以准确打印您想要的内容。

这样的事情应该有效:

Location location = holidays.get(key);
System.out.println(location.getlocationDesc() + " | " + location.getQuantity());

关于你的第二个问题:

如果您只需要打印 map 中存储的所有值,我认为直接迭代 map 值会更干净、更快:

for (Location location : holiday.holidays.values()) {
    System.out.println(location.getlocationDesc() + " | " + location.getQuantity());
}

第三个问题:

请注意,您的代码不会仅设置一个地点的数量。它遍历所有位置,将每个数量设置为相同的值,由 textFieldQuantity.getText() 定义。 .

如果要修改特定位置,则需要使用 get() 从 map 中检索它:

Location location = holiday.holidays.get(key);
location.setQuantity(Integer.parseInt(textFieldQuantity.getText()));

关于java - 如何返回HashMap对象字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29037716/

相关文章:

java - 如何在 HashMap 中返回 HashMap

java - 带对象键的 HashMap

java - Spring启动OAuth2实现: NoSuchBeanDefinitionException: No qualifying bean of type AuthenticationManager

java - 使用资源 getResources();在 AppWidget Android 中

javascript - JS - 构造函数中的 JSON/ARRAY 传递变量(自定义库)

Javascript:默认原型(prototype)字段显示使用 null 构造函数创建的对象未定义

java - Map.ofEntries() 而不是 Map.of() 有什么用

java - 如何获取 json 中的 applet 值作为输出

java - 一段时间后EntityManager变成NULL(大约10m)

javascript - Chai .js : Object contains/includes