Flutter:如何从Map列表中获取匹配的Map元素
筛选列表中指定name的Map元素
假设你的列表数据如下:
map_list = [ {'name': 'name1', 'age': 30}, {'name': 'name2', 'age': 20}, {'name': 'name1', 'age': 15} ]
实现方式
Python
用列表推导式直接完成筛选:
filtered_list = [item for item in map_list if item.get('name') == 'name1']
执行后filtered_list会包含目标元素:
[{'name': 'name1', 'age': 30}, {'name': 'name1', 'age': 15}]
Java
如果是Java环境,用流操作筛选List<Map<String, Object>>类型的数据:
import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class FilterMapList { public static void main(String[] args) { List<Map<String, Object>> mapList = List.of( Map.of("name", "name1", "age", 30), Map.of("name", "name2", "age", 20), Map.of("name", "name1", "age", 15) ); List<Map<String, Object>> filteredList = mapList.stream() .filter(item -> "name1".equals(item.get("name"))) .collect(Collectors.toList()); filteredList.forEach(System.out::println); } }
JavaScript
使用数组的filter方法实现:
const mapList = [ {name: 'name1', age: 30}, {name: 'name2', age: 20}, {name: 'name1', age: 15} ]; const filteredList = mapList.filter(item => item.name === 'name1'); console.log(filteredList);
通用逻辑
不管用哪种语言,核心步骤都是:
- 遍历列表中的每个Map元素
- 检查元素的
name字段值是否为name1 - 收集所有符合条件的元素组成新列表
内容的提问来源于stack exchange,提问作者Kvu
相关产品推荐
相关产品推荐

