首页 > 解决方案 > 用一个字符过滤 hashmap 列表

问题描述

我有以下列表,其中包含来自 sql server 的哈希映射字符串值并显示为列表。

 List<Map<String, String>> data = new ArrayList<>();
 Map<String, String> datanum = new HashMap<String, String>();
 datanum.put("Name", rs.getString("FirstName"));
 data.add(datanum);

我设法通过执行以下操作来过滤名称,一切正常。

 List<Map<String, String>> filtered_name;
 filtered_name = data.stream()
                .filter(x -> ("string").equalsIgnoreCase(x.get("Name")))
                .collect(Collectors.toList());

但是我现在所拥有的解决方案只有在输入完全匹配的情况下才有效。即使只输入一个字符也可以过滤吗?

在职的

Entered string: john
output: john xxx
        john yyy

我在找什么:

Entered string: j
output: john xxx
        john yyy

标签: androidarraylistfilter

解决方案


您是否尝试将过滤器中的谓词更改为以下内容:

.filter(x -> x.get("Name").startsWith("string"))

这将过滤所有具有以“字符串”开头的“名称”键值的地图。


推荐阅读