org.apache.commons.lang3.ArrayUtils 学习笔记
|
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
|
package com.nihaorz.model;/** * @作者 王睿 * @时间 2016-5-17 上午10:05:17 * */public class Person { private String id; private String name; private Integer age; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", age=" + age + "]"; } } |
|
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
|
import java.util.Iterator;import java.util.Map;import org.apache.commons.lang3.ArrayUtils;import org.junit.Test;import com.nihaorz.model.Person;/** * @作者 王睿 * @时间 2016-5-17 上午9:30:36 ArrayUtilsTest 使用 org.apache.commons.lang3.ArrayUtils * 对象完成数组的打印、克隆、查找、删除、倒序、分割以及值型/对象数组集合之间的转换等常用操作 */public class ArrayUtilsTest { /** * 测试类统一获取Person数组方法 * @return */ private Person[] getPP(){ Person p = new Person(); p.setId("1001"); p.setName("王睿"); p.setAge(27); Person p1 = new Person(); p1.setId("1002"); p1.setName("钱青芝"); p1.setAge(27); Person p2 = new Person(); p2.setId("1003"); p2.setName("王啸"); p2.setAge(30); Person p3 = new Person(); p3.setId("1004"); p3.setName("胡曼琪"); p3.setAge(10); Person[] pp = new Person[]{p,p1,p2,p3}; return pp; } /** * 测试类统一打印方法 * @param objs */ private void printArray(Object objs){ System.out.println(ArrayUtils.toString(objs)); } /** * ArrayUtils.toString * POJO对象数组直接toString * 二维数组toString */ @Test public void _toString(){ Person[] pp = getPP(); printArray(pp[0]); printArray(pp); int[][] intArray2 = { { 1, 2 }, { 2, 4 }, { 3, 8 }, { 4, 16 } }; printArray(intArray2); Object[][] notAMap = { { "A", new Double(100) }, { "B", new Double(80) }, { "C", new Double(60) }, { "D", new Double(40) }, { "E", new Double(20) } }; printArray(notAMap); } /** * ArrayUtils.clone * 数组对象克隆方法 */ @Test public void _clone(){ Person[] pp = getPP(); Person[] pp1 = ArrayUtils.clone(pp); printArray(pp1); } /** * ArrayUtils.indexOf * 返回元素在数组中第一次出现的位置,如果未找到或查询的参数是null即返回-1 */ @Test public void indexOf(){ double[] arr = {1.23,2.34,3.45,4.56,5.67,6.78,7.89,8.90,4.56}; int result = ArrayUtils.indexOf(arr, 4.56); System.out.println(result); String[] arr2 = {"wangrui", "wangcheng", "钱青芝","钱青芝"}; System.out.println(ArrayUtils.indexOf(arr2, "钱青芝")); } /** * ArrayUtils.lastIndexOf * 返回元素在数组中最后一次出现的位置,如果未找到或查询的参数是null即返回-1 */ @Test public void lastIndexOf(){ double[] arr = {1.23,2.34,3.45,4.56,5.67,6.78,7.89,8.90,4.56}; int result = ArrayUtils.lastIndexOf(arr, 4.56); System.out.println(result); String[] arr2 = {"wangrui", "wangcheng", "钱青芝","钱青芝"}; System.out.println(ArrayUtils.lastIndexOf(arr2, "钱青芝")); System.out.println(ArrayUtils.lastIndexOf(arr2, null)); } /** * ArrayUtils.contains * 指定数组中是否存在指定元素 */ @Test public void contains(){ double[] arr = {1.23,2.34,3.45,4.56,5.67,6.78,7.89,8.90,4.56}; System.out.println(ArrayUtils.contains(arr, 6.78)); System.out.println(ArrayUtils.contains(arr, 6.77)); } /** * ArrayUtils.remove * 删除数组指定下标的元素返回新的数组对象 */ @Test public void remove(){ Person[] pp = getPP(); pp = ArrayUtils.remove(pp, 1); printArray(pp); } /** * ArrayUtils.removeAll * 批量删除数组指定下标的元素返回新的数组对象 */ @Test public void removeAll(){ Person[] pp = getPP(); pp = ArrayUtils.removeAll(pp, 1, 2); printArray(pp); } /** * ArrayUtils.removeElement * 删除数组指定元素(仅删除第一个)返回新的数组对象 */ @Test public void removeElement(){ Person p = new Person(); p.setId("1001"); p.setName("王睿"); p.setAge(27); Person p1 = new Person(); p1.setId("1002"); p1.setName("钱青芝"); p1.setAge(27); Person p2 = new Person(); p2.setId("1003"); p2.setName("王啸"); p2.setAge(30); Person p3 = new Person(); p3.setId("1004"); p3.setName("胡曼琪"); p3.setAge(10); Person[] pp = new Person[]{p,p,p,p1,p2,p3}; pp = ArrayUtils.removeElement(pp, p); printArray(pp); } /** * ArrayUtils.removeElements * 删除数组指定元素(传多个删多个)返回新的数组对象 */ @Test public void removeElements(){ Person p = new Person(); p.setId("1001"); p.setName("王睿"); p.setAge(27); Person p1 = new Person(); p1.setId("1002"); p1.setName("钱青芝"); p1.setAge(27); Person p2 = new Person(); p2.setId("1003"); p2.setName("王啸"); p2.setAge(30); Person p3 = new Person(); p3.setId("1004"); p3.setName("胡曼琪"); p3.setAge(10); Person[] pp = new Person[]{p,p,p,p1,p2,p3}; pp = ArrayUtils.removeElements(pp, p); printArray(pp); pp = new Person[]{p,p,p,p1,p2,p3}; pp = ArrayUtils.removeElements(pp, p, p); printArray(pp); String[] strs = new String[]{"1", "1", "1", "2", "3", "4"}; strs = ArrayUtils.removeElements(strs, "1", "1"); printArray(strs); } /** * ArrayUtils.reverse * 数组反转 */ @Test public void reverse(){ Person[] pp = getPP(); printArray(pp); /** * 数组整个直接反转 */ ArrayUtils.reverse(pp); printArray(pp); /** * 只反转第0到第2(不包含第2个元素)个元素 */ ArrayUtils.reverse(pp, 0, 2); printArray(pp); } /** * ArrayUtils.subarray * 数组对象切割,返回新的数组对象 */ @Test public void subarray(){ Person[] pp = getPP(); printArray(pp); pp = ArrayUtils.subarray(pp, 2, 3); printArray(pp); } /** * ArrayUtils.toObject * 将8种基本类型数组转换为包装类型数组 */ @Test public void toObject(){ int[] arr = new int[]{}; System.out.println(arr.getClass().getSimpleName()); System.out.println(ArrayUtils.toObject(arr).getClass().getSimpleName()); char[] arr1 = new char[]{}; System.out.println(arr1.getClass().getSimpleName()); System.out.println(ArrayUtils.toObject(arr1).getClass().getSimpleName()); double[] arr2 = new double[]{1.1,2.2,3.3,4.4}; Double[] arr3 = ArrayUtils.toObject(arr2); printArray(arr3); for (Double d : arr3) { System.out.println(d.getClass().getSimpleName()); } } /** * ArrayUtils.toPrimitive * 将8中包装类型数组转换为基本类型数组 */ @Test public void toPrimitive(){ Integer[] arr = new Integer[]{}; System.out.println(arr.getClass().getSimpleName()); System.out.println(ArrayUtils.toPrimitive(arr).getClass().getSimpleName()); Character[] arr1 = new Character[]{}; System.out.println(arr1.getClass().getSimpleName()); System.out.println(ArrayUtils.toPrimitive(arr1).getClass().getSimpleName()); Double[] arr2 = new Double[]{1.1,2.2,3.3,4.4}; /** * 直接转换,不处理null值,出现null值即报空指针异常 */ double[] arr3 = ArrayUtils.toPrimitive(arr2); printArray(arr3); arr2 = ArrayUtils.add(arr2, null); /** * 处理null值,如果遇到null值直接替换为0.123456 */ printArray(ArrayUtils.toPrimitive(arr2, 0.123456)); /** * 不处理null值,报空指针异常 */ printArray(ArrayUtils.toPrimitive(arr2)); } /** * ArrayUtils.toArray * 将一组对象转换为数组 */ @Test public void toArray(){ String[] arr = ArrayUtils.toArray("112", "223", "445", "556"); printArray(arr); } /** * ArrayUtils.toMap * 将二维数组转换为map对象 */ @Test public void toMap(){ String[] arr1 = ArrayUtils.toArray("112", "223", "445", "556"); String[] arr2 = ArrayUtils.toArray("556", "778", "889", "900"); String[][] arr3 = ArrayUtils.toArray(arr1, arr2); Map map = ArrayUtils.toMap(arr3); String[][] arr4 = new String[][] {{"RED", "#FF0000"},{"GREEN", "#00FF00"},{"BLUE", "#0000FF"}}; map = ArrayUtils.toMap(arr4); Iterator it = map.keySet().iterator(); while(it.hasNext()) { String key = (String) it.next(); System.out.println("key:" + key + ", value:" + map.get(key)); } Object[][] notAMap = { { "A", new Double(100) }, { "B", new Double(80) }, { "C", new Double(60) }, { "D", new Double(40) }, { "E", new Double(20) } }; Map map1 = ArrayUtils.toMap(notAMap); Double res = (Double) map1.get("C"); System.out.println("get 'C' from map1: " + res); } } |

浙公网安备 33010602011771号