Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为一个名称分配多个不同类型的信息?_Java_Data Storage - Fatal编程技术网

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

Java 如何为一个名称分配多个不同类型的信息?,java,data-storage,Java,Data Storage,如果问题问错了,很抱歉,但我正在CSP做最后一个项目,我想用Java1.8制作一个排序系统 我以前使用Hashmaps存储元素,但显然,它们最多只能存储2个元素, 我想做以下几点: <String,Double,Int,Int,String> sortPls.put("Jackson",8.2,12,6000,"A"); 我该怎么做?有没有更简单的方法 我正在使用这个名为Repl.it的网站,这是我第一年的编码 public static HashMap<String,Dou

如果问题问错了,很抱歉,但我正在CSP做最后一个项目,我想用Java1.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个元素之后的数据类型返回为找不到符号。

您仍然可以使用HashMap,您只需要创建存储值的值列表。请注意,我将列表定义为保存对象数据类型,因此它是最具包容性的,但您可以将其更改为保存任何数据类型

   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());
       }
   }

你必须这样做

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;
    }
}
使用

public static HashMap<String, Data> sortPls= new HashMap(); 
public static void setList(){ 
    Data d = new Data("A",32,12L,'u');
    sortPls.put("Jackson",d);
}

您需要为每个要存储的值创建一个带有字段的类。因为您不知道这一点,所以我建议您在尝试编写此代码之前,进一步学习Java。这不会花很长时间,因为类是您将在Java中学习的第一件事。如果你看,这是第五节的对象和类。如果你看,这是第三部分的类和对象。我正在CSP做一个期末项目,我不知道CSP是什么,但听起来像是学校里的一门课程,期末考试意味着你已经远远超出了你应该学习的类、对象和字段的范围,所以我对这个问题投了反对票。StackOverflow不是一个教学网站,像Java这样的面向对象语言中的对象这样基本的东西意味着你什么都没学到,CSP指的是高中时提供的计算机科学原理,在那里我们只需要学习逻辑的基础知识和Java简介。使用列表存储对象的相关属性是错误的。有了这些代码,你甚至不知道8.2、12、6000和A是什么意思。正确的解决方案是创建一个具有命名和类型化字段的类。我给了他一个答案,使他能够将自己的值存储在HashMap中。是的,这门课可能就是我们要找的,但他的全部问题都是关于HashMaps的。他还可以自定义HashMap的实现,如果他真的想用maps来实现的话,他也可以这样做,否则我同意你的观点,类是这里最好的解决方案?我假设sortPls.getValuejackson不适用于val2示例。。。。。。。。。。。。。。。。。。。数据dataSaved=sortPls.getValueJackson;长j=d.getVal2;