add method

This commit is contained in:
Looly 2020-10-28 10:55:46 +08:00
parent cdedcf5b2a
commit 035ab33fb3
3 changed files with 48 additions and 8 deletions

View File

@ -11,6 +11,7 @@
* 【core 】 CollUtil增加forEach重载issue#I22NA4@Gitee
* 【core 】 CollUtil.map忽略空值改规则为原数组中的元素和处理后的元素都会忽略空值issue#I22N08@Gitee
* 【http 】 增加SoapClient增加addSOAPHeader重载
* 【http 】 ArrayUtil增加containsAll方法
### Bug修复
-------------------------------------------------------------------------------------------------------------

View File

@ -1340,6 +1340,25 @@ public class ArrayUtil {
return false;
}
/**
* 数组中是否包含指定元素中的全部
*
* @param <T> 数组元素类型
* @param array 数组
* @param values 被检查的多个元素
* @return 是否包含指定元素中的全部
* @since 5.4.7
*/
@SuppressWarnings("unchecked")
public static <T> boolean containsAll(T[] array, T... values) {
for (T value : values) {
if (false == contains(array, value)) {
return false;
}
}
return true;
}
/**
* 数组中是否包含元素忽略大小写
*

View File

@ -126,6 +126,26 @@ public class ArrayUtilTest {
Assert.assertTrue(contains2);
}
@Test
public void containsAnyTest() {
Integer[] a = {1, 2, 3, 4, 3, 6};
boolean contains = ArrayUtil.containsAny(a, 4, 10, 40);
Assert.assertTrue(contains);
contains = ArrayUtil.containsAny(a, 10, 40);
Assert.assertFalse(contains);
}
@Test
public void containsAllTest() {
Integer[] a = {1, 2, 3, 4, 3, 6};
boolean contains = ArrayUtil.containsAll(a, 4, 2, 6);
Assert.assertTrue(contains);
contains = ArrayUtil.containsAll(a, 1, 2, 3, 5);
Assert.assertFalse(contains);
}
@Test
public void mapTest() {
String[] keys = {"a", "b", "c"};
@ -172,13 +192,13 @@ public class ArrayUtilTest {
BigDecimal one = new BigDecimal("1.00");
BigDecimal two = new BigDecimal("2.0");
BigDecimal three = new BigDecimal("3");
BigDecimal[] bigDecimals = {two,one,three};
BigDecimal[] bigDecimals = {two, one, three};
BigDecimal minAccuracy = ArrayUtil.min(bigDecimals, Comparator.comparingInt(BigDecimal::scale));
Assert.assertEquals(minAccuracy,three);
Assert.assertEquals(minAccuracy, three);
BigDecimal maxAccuracy = ArrayUtil.max(bigDecimals,Comparator.comparingInt(BigDecimal::scale));
Assert.assertEquals(maxAccuracy,one);
BigDecimal maxAccuracy = ArrayUtil.max(bigDecimals, Comparator.comparingInt(BigDecimal::scale));
Assert.assertEquals(maxAccuracy, one);
}
@Test
@ -275,7 +295,7 @@ public class ArrayUtilTest {
}
@Test
public void toArrayTest(){
public void toArrayTest() {
final ArrayList<String> list = CollUtil.newArrayList("A", "B", "C", "D");
final String[] array = ArrayUtil.toArray(list, String.class);
Assert.assertEquals("A", array[0]);
@ -285,13 +305,13 @@ public class ArrayUtilTest {
}
@Test
public void addAllTest(){
public void addAllTest() {
final int[] ints = ArrayUtil.addAll(new int[]{1, 2, 3}, new int[]{4, 5, 6});
Assert.assertArrayEquals(new int[]{1,2,3,4,5,6}, ints);
Assert.assertArrayEquals(new int[]{1, 2, 3, 4, 5, 6}, ints);
}
@Test
public void isAllNotNullTest(){
public void isAllNotNullTest() {
String[] allNotNull = {"aa", "bb", "cc", "dd", "bb", "dd"};
Assert.assertTrue(ArrayUtil.isAllNotNull(allNotNull));
String[] hasNull = {"aa", "bb", "cc", null, "bb", "dd"};