简化lambds表达式Map<String, String> map = new HashMap<>(); map.put("1", "2"); map.put("3", "4"); map.put("5", "6"); Set<Map.Entry<String, String>> set = map.entrySet(); set.forEach(entry -> System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()));
时间: 2023-07-21 07:01:07 浏览: 43
以下是简化后的lambda表达式代码:
```java
Map<String, String> map = new HashMap<>();
map.put("1", "2");
map.put("3", "4");
map.put("5", "6");
map.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value));
```
在这段代码中,我们直接使用`map.forEach`方法来遍历Map对象,并使用lambda表达式打印每个键值对的键和值。这样可以避免先将Map转换为Set再进行遍历的步骤。希望能对你有所帮助!
相关问题
用lambda表达式遍历下边的set集合Map<String,String> map =new HashMap<>(); map.put("1","2"); map.put("3","4"); map.put("5","6"); Set<Map.Entry<String, String>> set = map.entrySet();
要使用lambda表达式遍历Set集合,你可以使用`forEach`方法。下面是使用lambda表达式遍历你提供的代码中的Set集合的示例代码:
```java
Map<String, String> map = new HashMap<>();
map.put("1", "2");
map.put("3", "4");
map.put("5", "6");
Set<Map.Entry<String, String>> set = map.entrySet();
set.forEach(entry -> System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()));
```
在这段代码中,我们通过调用`forEach`方法来遍历Set集合。lambda表达式`entry -> System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue())`定义了每个键值对的操作,将键和值打印输出。你可以根据实际需求修改lambda表达式的操作。
优化这段代码:List<CompletableFuture<Map<String, Object>>> futureList = new ArrayList<>(); for (PersonBasicVo person : personList) { CompletableFuture<Map<String, Object>> future = CompletableFuture.supplyAsync(() -> { String personNo = person.getPersonNo(); List<ContactsBasic> contactsList = contactsService.list(Wrappers.lambdaQuery(ContactsBasic.class) .eq(ContactsBasic::getPersonNo, personNo) .ne(ContactsBasic::getRelationshipAccount, "") .isNotNull(ContactsBasic::getPersonNo) .like(StrUtil.isNotBlank(phone), ContactsBasic::getRelationshipAccount, phone)); if (CollUtil.isNotEmpty(contactsList)) { Map<String, Object> contactsMap = new HashMap<>(); contactsMap.put("personNo", personNo); contactsMap.put("contactsList", contactsList); return contactsMap; } else { return null; } }, executor); futureList.add(future); } List<Map<String, Object>> contactsMapList = futureList.stream() .map(CompletableFuture::join) .filter(Objects::nonNull) .collect(Collectors.toList());
优化后的代码如下:
```java
List<CompletableFuture<Map<String, Object>>> futureList = personList.stream()
.map(person -> CompletableFuture.supplyAsync(() -> {
String personNo = person.getPersonNo();
List<ContactsBasic> contactsList = contactsService.list(Wrappers.lambdaQuery(ContactsBasic.class)
.eq(ContactsBasic::getPersonNo, personNo)
.ne(ContactsBasic::getRelationshipAccount, "")
.isNotNull(ContactsBasic::getPersonNo)
.like(StrUtil.isNotBlank(phone), ContactsBasic::getRelationshipAccount, phone));
if (CollUtil.isNotEmpty(contactsList)) {
Map<String, Object> contactsMap = new HashMap<>();
contactsMap.put("personNo", personNo);
contactsMap.put("contactsList", contactsList);
return contactsMap;
} else {
return null;
}
}, executor))
.collect(Collectors.toList());
List<Map<String, Object>> contactsMapList = futureList.stream()
.map(CompletableFuture::join)
.filter(Objects::nonNull)
.collect(Collectors.toList());
```
主要优化:
1. 使用流式编程,替换原来的for循环。
2. 使用`stream()`和`collect(Collectors.toList())`方法来收集结果,代替手动添加到列表中。
3. 将lambda表达式内联,使代码更简洁。