1. 数据转换
- Doule[] 拆箱成 double[]
Stream流处理
Double[] eArray={0.1,0.2,0.3};
double[] ePrimitive = Stream.of(eArray).mapToDouble(Double::doubleValue).toArray();
工具包:common-lang
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
<type>jar</type>
</dependency>
Double[] eArray={0.1,0.2,0.3};
double[] cArray=ArrayUtils.toPrimitive(eArray);
2. map集合的遍历方式及应用场景
- 使用Iterator遍历:
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
String key = entry.getKey();
Integer value = entry.getValue();
// do something with key and value
}
适用于需要在遍历时进行删除操作的场景。
- 使用For-Each遍历EntrySet:
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
// do something with key and value
}
适用于只需要遍历Map集合内容不需要删除操作的场景。
- 使用For-Each遍历KeySet:
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
for (String key : map.keySet()) {
Integer value = map.get(key);
// do something with key and value
}
适用于只需要遍历Map集合的Key值或者需要根据Key值查找对应Value值的场景。
值得注意的是,对于大部分场景而言,第二种方式应该是首选。因为第二种方式可以同时获取Key和Value值,且效率最高。而第三种方式需要每次循环都进行一次查找,效率较低。
来源:ChatGPT