是否可以有一个包含4个对象的hashmap?

Jac*_*ack 5 java hashmap

我可以将hashMap作为我的密钥和信息,名称,数量作为我的值吗?

好吧,说我有一个类(产品)已经设置了我的变量,getter和setter.在我的Invoice类中,这是hashMap的位置.我会这样说:

private HashMap<String, Products> keys = new HashMap<String, Products>
Run Code Online (Sandbox Code Playgroud)

我不太确定如何访问HashMap.假设我实现了一个允许我从HashMap添加和删除发票的类,我不知道它们的值是什么:

keys.put(??value of id??,??not sure what goes here??);
Run Code Online (Sandbox Code Playgroud)

Sta*_*key 19

当然.创建另一个包含您的信息,名称和数量的类,并将其作为HashMap的值.

  • @Luxspes:你为每个创建的课程付费吗? (5认同)
  • 你可能想要保留id,如果你以后需要的话?:) (3认同)
  • +1请为编程世界的理智创建一个新类. (3认同)

Jav*_*mae 7

不,但最好的方法是将要保留的信息包装在类中的地图中:

public class Info {
  private String info;
  private String name;
  private int quantity;

  ...

  public Info(String info, String name, int quantity) {
     ...
  }
}
Run Code Online (Sandbox Code Playgroud)

然后这样做以在地图中放置一些东西:

Info info = new Info("info", "name", 2);
Map map = new HashMap<Integer, Info>();
map.put(22, info);
Run Code Online (Sandbox Code Playgroud)

这样做可以解决问题:

Info info = map.get(22)
Run Code Online (Sandbox Code Playgroud)

  • @Luxspes:不会.与一个类不同,`HashMap <String,Object>`只告诉你"嘿伙计们,可能会有一些字符串与某些对象相关联!或者可能不是!".一堂课可以准确地告诉你哪些领域,以及它们的类型也是如此!创建一个新类并不是什么大问题. (3认同)
  • 我不认为他*知道*他应该在这里使用一堂课!这就是为什么人们回答这个问题告诉他的原因!如果他知道的话,我认为他没有任何理由提出这个问题.如果他这样做,那么也许他想知道是否有比使用课更好的方法.哪个没有,真的.人们不需要知道提问的答案.= / (2认同)