add map method

This commit is contained in:
Looly 2021-01-18 16:26:13 +08:00
parent 03bfb46889
commit 5a91698a78
4 changed files with 31 additions and 9 deletions

View File

@ -3,10 +3,11 @@
-------------------------------------------------------------------------------------------------------------
# 5.5.8 (2021-01-09)
# 5.5.8 (2021-01-18)
### 新特性
* 【extra 】 增加自动装配SpringUtil类pr#1366@Github
* 【extra 】 ArrayUtil增加map方法重载
### Bug修复
* 【core 】 修复FileUtil.move以及PathUtil.copy等无法自动创建父目录的问题issue#I2CKTI@Gitee

View File

@ -19,11 +19,13 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.Random;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 数组工具类
@ -1648,6 +1650,20 @@ public class ArrayUtil extends PrimitiveArrayUtil {
return result;
}
/**
* 按照指定规则将一种类型的数组元素提取后转换为List
*
* @param array 被转换的数组
* @param func 转换规则函数
* @param <T> 原数组类型
* @param <R> 目标数组类型
* @return 转换后的数组
* @since 5.5.7
*/
public static <T, R> List<R> map(T[] array, Function<? super T, ? extends R> func) {
return Arrays.stream(array).map(func).collect(Collectors.toList());
}
/**
* 判断两个数组是否相等判断依据包括数组长度和每个元素都相等
*

View File

@ -1,7 +1,9 @@
package cn.hutool.core.text.csv;
import cn.hutool.core.annotation.Alias;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.CharsetUtil;
import lombok.Data;
import org.junit.Assert;
@ -73,4 +75,13 @@ public class CsvReaderTest {
private String focus;
private Integer age;
}
@Test
public void readTest2(){
final CsvReader reader = CsvUtil.getReader();
final CsvData read = reader.read(FileUtil.file("d:/test/test.csv"));
for (CsvRow strings : read) {
Console.log(strings);
}
}
}

View File

@ -300,13 +300,7 @@ public class Ftp extends AbstractFtp {
@Override
public List<String> ls(String path) {
final FTPFile[] ftpFiles = lsFiles(path);
final List<String> fileNames = new ArrayList<>();
for (FTPFile ftpFile : ftpFiles) {
fileNames.add(ftpFile.getName());
}
return fileNames;
return ArrayUtil.map(lsFiles(path), FTPFile::getName);
}
/**