Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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_Java Stream - Fatal编程技术网

Java流过滤列表<;地图<;字符串,字符串>&燃气轮机;

Java流过滤列表<;地图<;字符串,字符串>&燃气轮机;,java,java-stream,Java,Java Stream,我想过滤“地图列表”,并使用流创建一个新对象 第一步,我可以从列表中选择与特定键匹配的条目: List<Map<String,String>> listOfItems =... listOfItems.stream().filter(m -> m.get("name").equals("apple")); 列表列表项=。。。 listOfItems.stream().filter(m->m.get(“name”).equals(“apple”); 现在,我想使用

我想过滤“地图列表”,并使用流创建一个新对象

第一步,我可以从列表中选择与特定键匹配的条目:

List<Map<String,String>> listOfItems =...
listOfItems.stream().filter(m -> m.get("name").equals("apple"));
列表列表项=。。。
listOfItems.stream().filter(m->m.get(“name”).equals(“apple”);
现在,我想使用选定的贴图条目创建一个对象

谢谢,
苏达这就是你需要的吗

List<Map<String,String>> listOfItems =...
listOfItems.stream()
           .filter(m -> m.containsValue("apple"))
           .map(m -> new NewObject(m))
           .collect(Collectors.toList());
列表列表项=。。。
listOfItems.stream()
.filter(m->m.containsValue(“苹果”))
.map(m->NewObject(m))
.collect(Collectors.toList());

所以,如果我正确理解了你的问题,你需要这样的东西:

List<Map<String,String>> listOfItems =...
List<MyObject> objects = listOfItems
    .stream()
    .filter(m -> m.get("name").equals("apple")) 
    .map(MyObject::new) // Construct object from matching map
    .collect(Collectors.toList()); // Collect into list
列表列表项=。。。
列表对象=列表项
.stream()
.filter(m->m.get(“name”).equals(“apple”))
.map(MyObject::new)//从匹配的映射构造对象
.collect(Collectors.toList());//列入名单

这将创建一个
MyObject
实例列表,为原始列表中的每个匹配映射创建一个实例。如果您只希望有一个这样的映射,或者您只希望从第一个匹配的映射创建对象,则可以将最后一行替换为
.findFirst()
(请参阅)

我得到一个错误,接口流中的方法map不能应用于.map(MyObject::new)中的给定类型,该行假设您正在构造一个名为MyObject的对象,并且它有一个构造函数,该构造函数将单个字符串作为参数。就我而言,这可能是一个错误的假设。你想建造什么样的物体?使用什么参数?映射(k,v)映射到POJO。我需要将映射传递给对象进行初始化。如果NewObject的构造函数为空,则此操作有效。但是,不能使用map参数。我得到这个错误:不兼容的类型:字符串不能转换为Map,这是什么意思?NewObject是否有字符串构造函数?否,它没有字符串构造函数。它有一个带映射的构造函数。但在NewObject(m)中,“m”被视为字符串而不是映射。