如何为一个名称分配多种不同类型的信息?

时间:2019-05-29 23:09:25

标签: java data-storage

对不起,如果这个问题被问错了,但是我正在CSP中做一个最终项目,我想在Java 1.8中创建一个排序系统。

我过去曾使用Hashmaps存储元素,但显然,它们最多只能存储2个元素, 我想做一些事情:

<String,Double,Int,Int,String>
sortPls.put("Jackson",8.2,12,6000,"A");

我该怎么做?有没有更简单的方法?

我正在使用名为Repl.it的网站,这是我第一年编码。

public static HashMap<String,Double,Int,Int,String> sortPls= new HashMap<String,Double,Int,Int,String>();
  public static void setList(){
sortPls.put("Jackson",8.2,12,6000,"A");

  }

我希望Hashmaps可以容纳2个以上的元素,但是它返回了一个错误,该错误将元素限制为2个,返回前2个后的数据类型为找不到符号。

2 个答案:

答案 0 :(得分:1)

您必须执行类似的操作

    LogClass myLog = new LogClass("this is initial string", logOutputBox);

使用...

public class Data {

    private String name;
    private int val1;
    private long val2;
    private char val3;

    public Data (String name, int val1, long val2, char val3) {
        this.name = name;
        this.val1 = val1;
        this.val2 = val2;
        this.val3 = val3;
    }
    public String getName() {
        return name;
    }
    public int getVal1() {
        return val1;
    }
    public long getVal2() {
        return val2;
    }
    public char getVal3() {
        return val3;
    }
}

答案 1 :(得分:-2)

您仍然可以使用HashMap,只需要制作存储您的值的值列表即可。请注意,我定义了列表来保存Object数据类型,以便它具有最大的包容性,但是您可以更改此列表以保存任何数据类型。

   Map<String, List<Object>> data = new java.util.HashMap<>();
   data.put("Jackson", new ArrayList<>(Arrays.asList(8.2,12,6000,"A")));

   for (Map.Entry<String, java.util.List<Object>> entry : data.entrySet()) {
       System.out.printf("Entry %s contains:%n", entry.getKey());
       for (List<Object> value : data.values()) {
           System.out.println(value.toString());
       }
   }