java hashmap foreach写法
时间: 2023-07-07 13:43:27 浏览: 200
Java HashMap 的 foreach 写法有两种:
1. 使用 Map.Entry<K,V> 遍历:
```java
Map<K, V> map = new HashMap<>();
// 添加元素到map中
for (Map.Entry<K, V> entry : map.entrySet()) {
K key = entry.getKey();
V value = entry.getValue();
// 处理 key 和 value
}
```
2. 使用 keySet() 遍历:
```java
Map<K, V> map = new HashMap<>();
// 添加元素到map中
for (K key : map.keySet()) {
V value = map.get(key);
// 处理 key 和 value
}
```
这两种方式的区别在于,第一种方式使用了 Map.Entry<K,V> 对象来遍历,可以直接获取到 key 和 value;而第二种方式需要通过 key 获取到 value。一般来说,第一种方式更加高效,因为只需要遍历一次 HashMap。
相关问题
java 流式写法将一个对象集合里面的某个属性,用给定map的value将其替换
您可以使用Java 8的流式写法和`map()`函数来实现这个需求。下面是一个示例代码:
```java
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Main {
public static void main(String[] args) {
List<Person> personList = Arrays.asList(
new Person("Alice"),
new Person("Bob"),
new Person("Charlie")
);
Map<String, String> nameMap = new HashMap<>();
nameMap.put("Alice", "A");
nameMap.put("Bob", "B");
nameMap.put("Charlie", "C");
personList.stream()
.forEach(person -> person.setName(nameMap.get(person.getName())));
personList.forEach(person -> System.out.println(person.getName()));
}
}
```
这个示例中,我们首先创建了一个包含`Person`对象的列表`personList`,每个`Person`对象都有一个名字属性。然后,我们创建了一个`nameMap`,用于将人名映射为对应的替换值。
接下来,我们使用流式写法对`personList`进行遍历,并使用`nameMap`将每个人的名字替换为对应的值。最后,我们打印出替换后的结果。
请注意,上述代码仅作为示例,您可以根据实际需求进行修改。
Map<String, String> jdrzlRybmMap = new HashMap<>(); Map<String, String> jdrzlDwmcMap = new HashMap<>(); queryResultList.forEach(item ->{ jdrzlRybmMap.put(item.getRybm(),item.getDwbm()); jdrzlDwmcMap.put(item.getRybm(),item.getDwmc()); }); 优化一下
这段代码已经是相对简洁和高效的写法了,但如果想要再进一步优化,可以使用Java 8的新特性,如下所示:
```
Map<String, String> jdrzlRybmMap = queryResultList.stream()
.collect(Collectors.toMap(ZbcQsjdrzlbaTjQueryResult::getRybm, ZbcQsjdrzlbaTjQueryResult::getDwbm));
Map<String, String> jdrzlDwmcMap = queryResultList.stream()
.collect(Collectors.toMap(ZbcQsjdrzlbaTjQueryResult::getRybm, ZbcQsjdrzlbaTjQueryResult::getDwmc));
```
这里使用了Stream的collect方法,将stream中的元素转换为Map,并且使用了方法引用来简化代码。这种写法可以进一步提高代码的简洁性和可读性。
阅读全文