Java通过List<String>筛选List对象中的对应
时间: 2024-04-30 08:20:09 浏览: 14
字符串怎么实现?
你好,关于你的问题,可以使用Java 8中的Stream API来筛选List对象中的对应字符串。具体实现代码如下:
```java
List<String> list = Arrays.asList("Java", "Python", "C++", "PHP", "JavaScript");
List<String > filteredList = list.stream().filter(str -> str.contains("Java")).collect(Collectors.toList());
```
上述代码中,我们首先创建了一个包含5个元素的List对象,然后使用Stream API将其转换为Stream对象,接着使用filter()方法对Stream中的元素进行筛选,最后使用collect()方法将筛选后的元素重新转换为List对象并保存在filteredList变量中。在这个例子中,我们使用的是字符串中是否包含指定子串的方式进行筛选,你也可以根据具体需求使用其他条件进行筛选。
希望这个回答能够帮助到你!如果你还有其他问题,随时可以提出。
相关问题
將List<Map<String,String>>用stream转为Map<String,List<String>>
可以使用Java 8的Stream API来将List<Map<String,String>>转化为Map<String,List<String>>。假设我们要将List<Map<String,String>>中的key为"keyName"的元素对应的value值转化为List<String>,并将每个元素的key对应的List<String>收集到Map<String,List<String>>中,可以使用以下代码:
```
List<Map<String, String>> list = ... // 初始化List<Map>对象
Map<String, List<String>> result = list.stream()
.flatMap(map -> map.entrySet().stream())
.filter(entry -> entry.getKey().equals("keyName"))
.collect(Collectors.groupingBy(Map.Entry::getKey, Collectors.mapping(Map.Entry::getValue, Collectors.toList())));
```
这段代码会对List中的每个Map对象执行flatMap操作,将其中的entry打散为一个个单独的entry,然后筛选出key为"keyName"的entry,最后使用groupingBy和mapping方法将每个entry的key对应的value转化为List<String>,并收集到Map<String,List<String>>中。
public class UserInfo{ String id;String Age;String name;} 现在有两个一一对应的list,List<String> ageListList,<String> nameList, ageList和nameList长度相同都为2,每个元素一一对应,List<UserInfo> users有3条数据,我只想筛选出,符合nameList和ageList对应的那两条数据 Java实现
可以使用 Java 8 的 Stream API 来实现:
```
List<String> ageList = Arrays.asList("20", "25");
List<String> nameList = Arrays.asList("Alice", "Bob");
List<UserInfo> filteredUsers = users.stream()
.filter(user -> ageList.contains(user.getAge()) && nameList.contains(user.getName()))
.collect(Collectors.toList());
```
使用 `filter` 方法筛选出符合条件的用户,其中使用了 `contains` 方法来判断 `ageList` 和 `nameList` 是否包含用户的年龄和姓名。最后使用 `collect` 方法将结果收集为一个列表。