-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathArrayFun.java
More file actions
142 lines (124 loc) · 3.26 KB
/
Copy pathArrayFun.java
File metadata and controls
142 lines (124 loc) · 3.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package io.github.xfuns.java.fun;
import io.github.xfuns.java.Fun;
import java.lang.reflect.Array;
import java.util.Arrays;
/**
* ArrayFun
*
* @author smallmenu
*/
public class ArrayFun extends ArrayBaseFun {
private ArrayFun() {
throw new AssertionError();
}
/**
* 检测对象是否为数组对象
*
* @param obj 对象
* @return boolean
*/
public static boolean isArray(Object obj) {
if (null == obj) {
return false;
}
return obj.getClass().isArray();
}
/**
* 获取数组长度,null 返回 0
*
* @param array 对象
* @return int
* @throws IllegalArgumentException 如果参数不为数组,抛出异常
*/
public static int length(Object array) throws IllegalArgumentException {
if (null == array) {
return 0;
}
return Array.getLength(array);
}
/**
* 数组中是否包含元素
*
* @param <T> 数组元素类型
* @param array 数组
* @param value 被检查的元素
* @return 是否包含
*/
public static <T> boolean contains(T[] array, T value) {
if (array != null) {
return indexOf(array, value) > INDEX_NOT_FOUND;
}
return false;
}
/**
* 查找数组指定元素,返回索引
*
* @param array 数组
* @param value 待查找元素
* @param <T> 数组范型
* @return int
*/
public static <T> int indexOf(T[] array, Object value) {
if (null != array) {
for (int i = 0; i < array.length; i++) {
if (ObjectFun.equal(value, array[i])) {
return i;
}
}
}
return INDEX_NOT_FOUND;
}
/**
* 字符串数组转整型数组,忽略错误的值
*
* @param strings 字符串数组
* @return int []
*/
public static int[] stringToIntArray(String[] strings) {
if (strings == null) {
return EMPTY_INT;
}
int[] numbers = new int[strings.length];
int index = 0;
for (String string : strings) {
try {
numbers[index] = Integer.parseInt(string);
index++;
} catch (NumberFormatException ignored) {
}
}
return Arrays.copyOf(numbers, index);
}
/**
* 字符串数组转整型数组,忽略错误的值
*
* @param strings 字符串数组
* @return long []
*/
public static long[] stringToLongArray(String[] strings) {
if (strings == null) {
return EMPTY_LONG;
}
long[] numbers = new long[strings.length];
int index = 0;
for (String string : strings) {
try {
numbers[index] = Long.parseLong(string);
index++;
} catch (NumberFormatException ignored) {
}
}
return Arrays.copyOf(numbers, index);
}
@SafeVarargs
public static <T> boolean hasNull(T... array) {
if (Fun.empty(array)) {
for (T element : array) {
if (null == element) {
return true;
}
}
}
return false;
}
}