diff --git a/CHANGELOG.md b/CHANGELOG.md index 7370432a0..3be945f6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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) diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java index db6d7345d..04524c4ef 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java @@ -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 原数组类型 + * @param 目标数组类型 + * @return 转换后的数组 + * @since 5.5.7 + */ + public static List map(T[] array, Function func) { + return Arrays.stream(array).map(func).collect(Collectors.toList()); + } + /** * 判断两个数组是否相等,判断依据包括数组长度和每个元素都相等。 * diff --git a/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvReaderTest.java b/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvReaderTest.java index 4de1f22c3..34860eb27 100644 --- a/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvReaderTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/text/csv/CsvReaderTest.java @@ -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); + } + } } diff --git a/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java b/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java index 21f2498d0..610eee276 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java @@ -300,13 +300,7 @@ public class Ftp extends AbstractFtp { @Override public List ls(String path) { - final FTPFile[] ftpFiles = lsFiles(path); - - final List fileNames = new ArrayList<>(); - for (FTPFile ftpFile : ftpFiles) { - fileNames.add(ftpFile.getName()); - } - return fileNames; + return ArrayUtil.map(lsFiles(path), FTPFile::getName); } /**