不兼容的java.lang.Float,无法使用多值映射进行实例化

不兼容的java.lang.Float,无法使用多值映射进行实例化,java,spring,Java,Spring,我是Java和Spring的新手。当我想在Spring中使用MultiValueMap时,它的报告是MultiValueMap是抽象的,无法实例化,我的代码如下: import java.util.*; import org.springframework.util.MutliValueMap; MultiValueMap<String, List<Float>> dataMap = new MultiValueMap< String, List<Float&

我是Java和Spring的新手。当我想在Spring中使用MultiValueMap时,它的报告是MultiValueMap是抽象的,无法实例化,我的代码如下:

import java.util.*;
import org.springframework.util.MutliValueMap;
MultiValueMap<String, List<Float>> dataMap = new MultiValueMap< String, List<Float>>();
import java.util.*;
导入org.springframework.util.MutliValueMap;
多值映射数据映射=新的多值映射<字符串,列表>();
我把句子改成

 MultiValueMap<String, List<Float>> dataMap = new LinkedMultiValueMap<String, List<Float>>();
MultiValueMap dataMap=新链接的MultiValueMap();

它报告不兼容的java.util.List无法传输到java.util.List。我使用的是jdku172和5.2.2版的Spring MVC库,5.2.2版的Spring库RELEASE

您必须修复软件包导入。下面是
多值映射
的一个示例用法

import java.util.List;
import java.util.Map;

import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;

public class MultiValueMapExample {

    public static void main(String[] args) {
        MultiValueMap<String, Float> map = new LinkedMultiValueMap<>();
        map.add("Canon", 500.00f);
        map.add("Canon", 501.00f);
        map.add("Canon", 502.00f);

        map.add("Nikon", 550.00f);
        map.add("Nikon", 551.00f);
        map.add("Nikon", 552.00f);

        for (Map.Entry<String, List<Float>> e : map.entrySet()) {
            System.out.println(e.getKey() + ": " + e.getValue());
        }
    }
}
import java.util.List;
导入java.util.Map;
导入org.springframework.util.LinkedMultiValueMap;
导入org.springframework.util.MultiValueMap;
公共类多值映射示例{
公共静态void main(字符串[]args){
MultiValueMap=新链接的MultiValueMap();
地图添加(“佳能”,500.00f);
添加地图(“佳能”,501.00f);
添加地图(“佳能”,502.00f);
地图添加(“尼康”,550.00f);
地图添加(“尼康”,551.00f);
地图添加(“尼康”,552.00f);
对于(Map.Entry e:Map.entrySet()){
System.out.println(e.getKey()+“:”+e.getValue());
}
}
}

如果要将多个floato值与单个键关联,则必须声明类型
多值映射

import java.util.List;
import java.util.Map;

import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;

public class MultiValueMapExample {

    public static void main(String[] args) {
        MultiValueMap<String, Float> map = new LinkedMultiValueMap<>();
        map.add("Canon", 500.00f);
        map.add("Canon", 501.00f);
        map.add("Canon", 502.00f);

        map.add("Nikon", 550.00f);
        map.add("Nikon", 551.00f);
        map.add("Nikon", 552.00f);

        for (Map.Entry<String, List<Float>> e : map.entrySet()) {
            System.out.println(e.getKey() + ": " + e.getValue());
        }
    }
}
类型
多值映射

MultiValueMap dataMap=新链接的MultiValueMap()


这是对的。尝试使用IntelliJ Idea和Spring Boot。这将管理正确的jdk依赖项和spring实用程序。这一行没有问题。

没有检查
LinkedMultiValueMap
的类型定义:您是否尝试实例化为
new LinkedMultiValueMap()
MultiValueMap dataMap=new LinkedMultiValueMap()
可以,但我想将每个键连接到几个浮点数,这正是
多值映射所做的。如果您声明
多值映射
,那么您将创建一个映射,该映射可以为每个键保存多个浮点列表(即列表列表列表)。但是如果我想在值中添加几个浮点数字,有什么方法吗?当我向它添加一个浮点型变量时,会显示'float cannottransfer to java.util.List`是map.add Value可以是一个浮点变量吗?就像我们把一个一维变量放到二维变量中一样当然你可以这样做,如果你想添加几个值,你可以像map.addAll(“Sony”,Arrays.asList)那样做(550.00f,551.00f,552.00f);或map.addAll(“Panasonic”,Stream.of(550.00f,551.00f,552.00f)。collect(Collectors.toList());或map.addAll(“Panasonic”,List.of(550.00f,551.00f,552.00f);或map.addAll(“Pentax”,new ArrayList(){add(550.00f);add(551.00f);add(552.00f);});
MultiValueMap<String, Float> dataMap = new LinkedMultiValueMap<>();
dataMap.add("key1", 1.0f);
dataMap.add("key1", 1.1f);
dataMap.add("key1", 1.2f);
dataMap.add("key2", 2.0f);
dataMap.getFirst("key1"); // 1.0f
dataMap.get("key1"); // List.of("1.0f", "1.1f", "1.2f")