ソースを参照

add map method

Looly 4 年 前
コミット
5a91698a78

+ 2 - 1
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)

+ 17 - 1
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;
 
 /**
  * 数组工具类
@@ -1649,6 +1651,20 @@ public class ArrayUtil extends PrimitiveArrayUtil {
 	}
 
 	/**
+	 * 按照指定规则,将一种类型的数组元素提取后转换为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());
+	}
+
+	/**
 	 * 判断两个数组是否相等,判断依据包括数组长度和每个元素都相等。
 	 *
 	 * @param array1 数组1

+ 11 - 0
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);
+		}
+	}
 }

+ 1 - 7
hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java

@@ -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);
 	}
 
 	/**