add setCaseInsensitive

This commit is contained in:
Looly
2020-03-16 23:19:04 +08:00
parent 3a579171c1
commit 87167a07d0
27 changed files with 296 additions and 217 deletions

View File

@@ -1,13 +1,12 @@
package cn.hutool.core.convert.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Converter;
import cn.hutool.core.util.TypeUtil;
import java.lang.reflect.Type;
import java.util.Collection;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Converter;
import cn.hutool.core.util.TypeUtil;
/**
* 各种集合类转换器
*
@@ -77,7 +76,7 @@ public class CollectionConverter implements Converter<Collection<?>> {
* @return 转换后的集合对象
*/
protected Collection<?> convertInternal(Object value) {
final Collection<Object> collection = CollectionUtil.create(TypeUtil.getClass(this.collectionType));
final Collection<Object> collection = CollUtil.create(TypeUtil.getClass(this.collectionType));
return CollUtil.addAll(collection, value, this.elementType);
}
}

View File

@@ -1,5 +1,11 @@
package cn.hutool.core.exceptions;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FastByteArrayOutputStream;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import java.io.PrintStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.UndeclaredThrowableException;
@@ -8,12 +14,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.FastByteArrayOutputStream;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
/**
* 异常工具类
*
@@ -208,7 +208,7 @@ public class ExceptionUtil {
length = limit;
}
if (CollectionUtil.isNotEmpty(replaceCharToStrMap)) {
if (CollUtil.isNotEmpty(replaceCharToStrMap)) {
final StringBuilder sb = StrUtil.builder();
char c;
String value;

View File

@@ -1,5 +1,14 @@
package cn.hutool.core.io.resource;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.EnumerationIter;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ClassLoaderUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -8,15 +17,6 @@ import java.nio.charset.Charset;
import java.util.Enumeration;
import java.util.List;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.EnumerationIter;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ClassLoaderUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil;
/**
* ClassPath资源工具类
*
@@ -134,7 +134,7 @@ public class ResourceUtil {
} catch (IOException e) {
throw new IORuntimeException(e);
}
return CollectionUtil.newArrayList(resources);
return CollUtil.newArrayList(resources);
}
/**

View File

@@ -1,14 +1,14 @@
package cn.hutool.core.io.watch.watchers;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.watch.Watcher;
import cn.hutool.core.lang.Chain;
import java.nio.file.Path;
import java.nio.file.WatchEvent;
import java.util.Iterator;
import java.util.List;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.watch.Watcher;
import cn.hutool.core.lang.Chain;
/**
* 观察者链<br>
* 用于加入多个观察者
@@ -35,7 +35,7 @@ public class WatcherChain implements Watcher, Chain<Watcher, WatcherChain>{
* @param watchers 观察者列表
*/
public WatcherChain(Watcher... watchers) {
chain = CollectionUtil.newArrayList(watchers);
chain = CollUtil.newArrayList(watchers);
}
@Override
@@ -66,6 +66,7 @@ public class WatcherChain implements Watcher, Chain<Watcher, WatcherChain>{
}
}
@SuppressWarnings("NullableProblems")
@Override
public Iterator<Watcher> iterator() {
return this.chain.iterator();

View File

@@ -3,7 +3,7 @@ package cn.hutool.core.lang;
import java.util.Collection;
import java.util.Map;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
@@ -353,7 +353,7 @@ public class Assert {
* @throws IllegalArgumentException if the collection is {@code null} or has no elements
*/
public static <T> Collection<T> notEmpty(Collection<T> collection, String errorMsgTemplate, Object... params) throws IllegalArgumentException {
if (CollectionUtil.isEmpty(collection)) {
if (CollUtil.isEmpty(collection)) {
throw new IllegalArgumentException(StrUtil.format(errorMsgTemplate, params));
}
return collection;
@@ -392,7 +392,7 @@ public class Assert {
* @throws IllegalArgumentException if the map is {@code null} or has no entries
*/
public static <K, V> Map<K, V> notEmpty(Map<K, V> map, String errorMsgTemplate, Object... params) throws IllegalArgumentException {
if (CollectionUtil.isEmpty(map)) {
if (CollUtil.isEmpty(map)) {
throw new IllegalArgumentException(StrUtil.format(errorMsgTemplate, params));
}
return map;

View File

@@ -1,5 +1,10 @@
package cn.hutool.core.lang;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.getter.BasicTypeGetter;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.Time;
@@ -10,11 +15,6 @@ import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.getter.BasicTypeGetter;
/**
* 字典对象扩充了HashMap中的方法
*
@@ -231,7 +231,7 @@ public class Dict extends LinkedHashMap<String, Object> implements BasicTypeGett
* @param withoutNames 不需要去除的字段名
*/
public <T extends Dict> void removeEqual(T dict, String... withoutNames) {
HashSet<String> withoutSet = CollectionUtil.newHashSet(withoutNames);
HashSet<String> withoutSet = CollUtil.newHashSet(withoutNames);
for (Map.Entry<String, Object> entry : dict.entrySet()) {
if (withoutSet.contains(entry.getKey())) {
continue;

View File

@@ -1,10 +1,6 @@
package cn.hutool.core.map;
import java.util.*;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Editor;
import cn.hutool.core.lang.Filter;
@@ -14,6 +10,22 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.IdentityHashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;
/**
* Map相关工具类
*
@@ -357,7 +369,7 @@ public class MapUtil {
*/
public static <K, V> Map<K, List<V>> toListMap(Iterable<? extends Map<K, V>> mapList) {
final HashMap<K, List<V>> resultMap = new HashMap<>();
if (CollectionUtil.isEmpty(mapList)) {
if (CollUtil.isEmpty(mapList)) {
return resultMap;
}
@@ -370,7 +382,7 @@ public class MapUtil {
key = entry.getKey();
valueList = resultMap.get(key);
if (null == valueList) {
valueList = CollectionUtil.newArrayList(entry.getValue());
valueList = CollUtil.newArrayList(entry.getValue());
resultMap.put(key, valueList);
} else {
valueList.add(entry.getValue());
@@ -425,7 +437,7 @@ public class MapUtil {
List<V> vList;
int vListSize;
for (Entry<K, ? extends Iterable<V>> entry : listMap.entrySet()) {
vList = CollectionUtil.newArrayList(entry.getValue());
vList = CollUtil.newArrayList(entry.getValue());
vListSize = vList.size();
if (index < vListSize) {
map.put(entry.getKey(), vList.get(index));

View File

@@ -1,7 +1,6 @@
package cn.hutool.core.net;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
@@ -350,7 +349,7 @@ public class NetUtil {
return null;
}
return CollectionUtil.addAll(new ArrayList<>(), networkInterfaces);
return CollUtil.addAll(new ArrayList<>(), networkInterfaces);
}
/**

View File

@@ -1,5 +1,6 @@
package cn.hutool.core.util;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.IterUtil;
import cn.hutool.core.exceptions.UtilException;
@@ -8,7 +9,14 @@ import cn.hutool.core.lang.Filter;
import java.lang.reflect.Array;
import java.nio.ByteBuffer;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
/**
* 数组工具类
@@ -931,7 +939,7 @@ public class ArrayUtil {
}
final int size = Math.min(keys.length, values.length);
final Map<K, V> map = CollectionUtil.newHashMap(size, isOrder);
final Map<K, V> map = CollUtil.newHashMap(size, isOrder);
for (int i = 0; i < size; i++) {
map.put(keys[i], values[i]);
}
@@ -2674,7 +2682,7 @@ public class ArrayUtil {
* @since 3.0.9
*/
public static <T> T[] toArray(Iterator<T> iterator, Class<T> componentType) {
return toArray(CollectionUtil.newArrayList(iterator), componentType);
return toArray(CollUtil.newArrayList(iterator), componentType);
}
/**

View File

@@ -1,7 +1,7 @@
package cn.hutool.core.util;
import cn.hutool.core.annotation.Alias;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.lang.Assert;
@@ -391,7 +391,7 @@ public class ReflectUtil {
}
}
} else {
methodList = CollectionUtil.newArrayList(methods);
methodList = CollUtil.newArrayList(methods);
}
return methodList;
}
@@ -404,7 +404,7 @@ public class ReflectUtil {
* @return 过滤后的方法列表
*/
public static List<Method> getPublicMethods(Class<?> clazz, Method... excludeMethods) {
final HashSet<Method> excludeMethodSet = CollectionUtil.newHashSet(excludeMethods);
final HashSet<Method> excludeMethodSet = CollUtil.newHashSet(excludeMethods);
return getPublicMethods(clazz, method -> false == excludeMethodSet.contains(method));
}
@@ -416,7 +416,7 @@ public class ReflectUtil {
* @return 过滤后的方法列表
*/
public static List<Method> getPublicMethods(Class<?> clazz, String... excludeMethodNames) {
final HashSet<String> excludeMethodNameSet = CollectionUtil.newHashSet(excludeMethodNames);
final HashSet<String> excludeMethodNameSet = CollUtil.newHashSet(excludeMethodNames);
return getPublicMethods(clazz, method -> false == excludeMethodNameSet.contains(method.getName()));
}

View File

@@ -31,7 +31,7 @@ public class CollUtilTest {
@Test
public void newHashSetTest() {
Set<String> set = CollectionUtil.newHashSet((String[]) null);
Set<String> set = CollUtil.newHashSet((String[]) null);
Assert.assertNotNull(set);
}
@@ -41,12 +41,12 @@ public class CollUtilTest {
Dict v2 = Dict.create().set("age", 13).set("id", 15).set("name", "李四");
final String[] keys = v1.keySet().toArray(new String[0]);
ArrayList<Object> v1s = CollectionUtil.valuesOfKeys(v1, keys);
ArrayList<Object> v1s = CollUtil.valuesOfKeys(v1, keys);
Assert.assertTrue(v1s.contains(12));
Assert.assertTrue(v1s.contains(23));
Assert.assertTrue(v1s.contains("张三"));
ArrayList<Object> v2s = CollectionUtil.valuesOfKeys(v2, keys);
ArrayList<Object> v2s = CollUtil.valuesOfKeys(v2, keys);
Assert.assertTrue(v2s.contains(15));
Assert.assertTrue(v2s.contains(13));
Assert.assertTrue(v2s.contains("李四"));
@@ -54,34 +54,34 @@ public class CollUtilTest {
@Test
public void unionTest() {
ArrayList<String> list1 = CollectionUtil.newArrayList("a", "b", "b", "c", "d", "x");
ArrayList<String> list2 = CollectionUtil.newArrayList("a", "b", "b", "b", "c", "d");
ArrayList<String> list1 = CollUtil.newArrayList("a", "b", "b", "c", "d", "x");
ArrayList<String> list2 = CollUtil.newArrayList("a", "b", "b", "b", "c", "d");
Collection<String> union = CollectionUtil.union(list1, list2);
Collection<String> union = CollUtil.union(list1, list2);
Assert.assertEquals(3, CollectionUtil.count(union, t -> t.equals("b")));
Assert.assertEquals(3, CollUtil.count(union, t -> t.equals("b")));
}
@Test
public void intersectionTest() {
ArrayList<String> list1 = CollectionUtil.newArrayList("a", "b", "b", "c", "d", "x");
ArrayList<String> list2 = CollectionUtil.newArrayList("a", "b", "b", "b", "c", "d");
ArrayList<String> list1 = CollUtil.newArrayList("a", "b", "b", "c", "d", "x");
ArrayList<String> list2 = CollUtil.newArrayList("a", "b", "b", "b", "c", "d");
Collection<String> union = CollectionUtil.intersection(list1, list2);
Assert.assertEquals(2, CollectionUtil.count(union, t -> t.equals("b")));
Collection<String> union = CollUtil.intersection(list1, list2);
Assert.assertEquals(2, CollUtil.count(union, t -> t.equals("b")));
}
@Test
public void disjunctionTest() {
ArrayList<String> list1 = CollectionUtil.newArrayList("a", "b", "b", "c", "d", "x");
ArrayList<String> list2 = CollectionUtil.newArrayList("a", "b", "b", "b", "c", "d", "x2");
ArrayList<String> list1 = CollUtil.newArrayList("a", "b", "b", "c", "d", "x");
ArrayList<String> list2 = CollUtil.newArrayList("a", "b", "b", "b", "c", "d", "x2");
Collection<String> disjunction = CollectionUtil.disjunction(list1, list2);
Collection<String> disjunction = CollUtil.disjunction(list1, list2);
Assert.assertTrue(disjunction.contains("b"));
Assert.assertTrue(disjunction.contains("x2"));
Assert.assertTrue(disjunction.contains("x"));
Collection<String> disjunction2 = CollectionUtil.disjunction(list2, list1);
Collection<String> disjunction2 = CollUtil.disjunction(list2, list1);
Assert.assertTrue(disjunction2.contains("b"));
Assert.assertTrue(disjunction2.contains("x2"));
Assert.assertTrue(disjunction2.contains("x"));
@@ -90,29 +90,29 @@ public class CollUtilTest {
@Test
public void disjunctionTest2() {
// 任意一个集合为空,差集为另一个集合
ArrayList<String> list1 = CollectionUtil.newArrayList();
ArrayList<String> list2 = CollectionUtil.newArrayList("a", "b", "b", "b", "c", "d", "x2");
ArrayList<String> list1 = CollUtil.newArrayList();
ArrayList<String> list2 = CollUtil.newArrayList("a", "b", "b", "b", "c", "d", "x2");
Collection<String> disjunction = CollectionUtil.disjunction(list1, list2);
Collection<String> disjunction = CollUtil.disjunction(list1, list2);
Assert.assertEquals(list2, disjunction);
Collection<String> disjunction2 = CollectionUtil.disjunction(list2, list1);
Collection<String> disjunction2 = CollUtil.disjunction(list2, list1);
Assert.assertEquals(list2, disjunction2);
}
@Test
public void disjunctionTest3() {
// 无交集下返回共同的元素
ArrayList<String> list1 = CollectionUtil.newArrayList("1", "2", "3");
ArrayList<String> list2 = CollectionUtil.newArrayList("a", "b", "c");
ArrayList<String> list1 = CollUtil.newArrayList("1", "2", "3");
ArrayList<String> list2 = CollUtil.newArrayList("a", "b", "c");
Collection<String> disjunction = CollectionUtil.disjunction(list1, list2);
Collection<String> disjunction = CollUtil.disjunction(list1, list2);
Assert.assertTrue(disjunction.contains("1"));
Assert.assertTrue(disjunction.contains("2"));
Assert.assertTrue(disjunction.contains("3"));
Assert.assertTrue(disjunction.contains("a"));
Assert.assertTrue(disjunction.contains("b"));
Assert.assertTrue(disjunction.contains("c"));
Collection<String> disjunction2 = CollectionUtil.disjunction(list2, list1);
Collection<String> disjunction2 = CollUtil.disjunction(list2, list1);
Assert.assertTrue(disjunction2.contains("1"));
Assert.assertTrue(disjunction2.contains("2"));
Assert.assertTrue(disjunction2.contains("3"));
@@ -132,13 +132,13 @@ public class CollUtilTest {
map2.put("c", "值3");
// ----------------------------------------------------------------------------------------
ArrayList<HashMap<String, String>> list = CollectionUtil.newArrayList(map1, map2);
Map<String, List<String>> map = CollectionUtil.toListMap(list);
ArrayList<HashMap<String, String>> list = CollUtil.newArrayList(map1, map2);
Map<String, List<String>> map = CollUtil.toListMap(list);
Assert.assertEquals("值1", map.get("a").get(0));
Assert.assertEquals("值2", map.get("a").get(1));
// ----------------------------------------------------------------------------------------
List<Map<String, String>> listMap = CollectionUtil.toMapList(map);
List<Map<String, String>> listMap = CollUtil.toMapList(map);
Assert.assertEquals("值1", listMap.get(0).get("a"));
Assert.assertEquals("值2", listMap.get(1).get("a"));
}
@@ -147,17 +147,17 @@ public class CollUtilTest {
public void getFieldValuesTest() {
Dict v1 = Dict.create().set("id", 12).set("name", "张三").set("age", 23);
Dict v2 = Dict.create().set("age", 13).set("id", 15).set("name", "李四");
ArrayList<Dict> list = CollectionUtil.newArrayList(v1, v2);
ArrayList<Dict> list = CollUtil.newArrayList(v1, v2);
List<Object> fieldValues = CollectionUtil.getFieldValues(list, "name");
List<Object> fieldValues = CollUtil.getFieldValues(list, "name");
Assert.assertEquals("张三", fieldValues.get(0));
Assert.assertEquals("李四", fieldValues.get(1));
}
@Test
public void splitTest() {
final ArrayList<Integer> list = CollectionUtil.newArrayList(1, 2, 3, 4, 5, 6, 7, 8, 9);
List<List<Integer>> split = CollectionUtil.split(list, 3);
final ArrayList<Integer> list = CollUtil.newArrayList(1, 2, 3, 4, 5, 6, 7, 8, 9);
List<List<Integer>> split = CollUtil.split(list, 3);
Assert.assertEquals(3, split.size());
Assert.assertEquals(3, split.get(0).size());
}
@@ -170,7 +170,7 @@ public class CollUtilTest {
map.put("c", "3");
final String[] result = new String[1];
CollectionUtil.forEach(map, (key, value, index) -> {
CollUtil.forEach(map, (key, value, index) -> {
if (key.equals("a")) {
result[0] = value;
}
@@ -234,10 +234,10 @@ public class CollUtilTest {
@Test
public void groupTest() {
List<String> list = CollUtil.newArrayList("1", "2", "3", "4", "5", "6");
List<List<String>> group = CollectionUtil.group(list, null);
List<List<String>> group = CollUtil.group(list, null);
Assert.assertTrue(group.size() > 0);
List<List<String>> group2 = CollectionUtil.group(list, t -> {
List<List<String>> group2 = CollUtil.group(list, t -> {
// 按照奇数偶数分类
return Integer.parseInt(t) % 2;
});

View File

@@ -1,7 +1,10 @@
package cn.hutool.core.lang;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.tree.*;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNode;
import cn.hutool.core.lang.tree.TreeNodeConfig;
import cn.hutool.core.lang.tree.TreeUtil;
import org.junit.Assert;
import org.junit.Test;
@@ -14,7 +17,7 @@ import java.util.List;
*/
public class TreeTest {
// 模拟数据
static List<TreeNode<String>> nodeList = CollectionUtil.newArrayList();
static List<TreeNode<String>> nodeList = CollUtil.newArrayList();
static {
// 模拟数据

View File

@@ -1,27 +1,26 @@
package cn.hutool.core.util;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Console;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import java.math.RoundingMode;
import java.util.List;
import java.util.Set;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Console;
public class RandomUtilTest {
@Test
public void randomEleSetTest(){
Set<Integer> set = RandomUtil.randomEleSet(CollectionUtil.newArrayList(1, 2, 3, 4, 5, 6), 2);
Set<Integer> set = RandomUtil.randomEleSet(CollUtil.newArrayList(1, 2, 3, 4, 5, 6), 2);
Assert.assertEquals(set.size(), 2);
}
@Test
public void randomElesTest(){
List<Integer> result = RandomUtil.randomEles(CollectionUtil.newArrayList(1, 2, 3, 4, 5, 6), 2);
List<Integer> result = RandomUtil.randomEles(CollUtil.newArrayList(1, 2, 3, 4, 5, 6), 2);
Assert.assertEquals(result.size(), 2);
}