import java.lang.reflect.Array;
2 import java.util.Collection;
3 import java.util.Iterator;
4
5 import org.apache.commons.lang.StringUtils;
6
7 /**
8 * 数组工具类
9 *
10 */
11 public class ArrayUtil {
12
13 private transient static final String DEFAULT_JOIN_STR = ",";
14
15 /**
16 * 连接字符串 如:[1,2,3,4],将会返回"1,2,3,4"
17 *
18 * @param arr
19 * an array of {@link java.lang.Object} objects.
20 * @return a {@link java.lang.String} object.
21 */
22 public static final String join(final Object[] arr) {
23 return join(arr, DEFAULT_JOIN_STR);
24 }
25
26 /**
27 * 连接字符串 如: join([1,2,3,4],"x"]) 将会返回"1x2x3x4"
28 *
29 * @param arr
30 * an array of {@link java.lang.Object} objects.
31 * @param joinStr
32 * a {@link java.lang.String} object.
33 * @return a {@link java.lang.String} object.
34 */
35 public static final String join(final Object[] arr, final String joinStr) {
36 if (arr == null || arr.length < 1) {
37 return StringUtils.EMPTY;
38 }
39 final StringBuffer sb = new StringBuffer(String.valueOf(arr[0]));
40 for (int i = 1, len = arr.length; i < len; i++) {
41 sb.append(StringUtils.isNotEmpty(joinStr) ? joinStr : StringUtils.EMPTY).append(String.valueOf(arr[i]));
42 }
43 return sb.toString();
44 }
45
46 /**
47 * 集合转数组
48 *
49 * @param collection
50 * 集合
51 * @param clazz
52 * 类型
53 * @return 数组
54 * @param <T>
55 * a T object.
56 */
57 @SuppressWarnings("unchecked")
58 public static final <T> T[] toArray(final Collection<T> collection, final Class<T> clazz) {
59 if (collection == null) {
60 return null;
61 }
62 final T[] arr = (T[]) Array.newInstance(clazz, collection.size());
63 return collection.toArray(arr);
64 }
65
66 /**
67 * 集合转对象数组
68 *
69 * @param collection
70 * 集合
71 * @return 对象数组
72 */
73 public static final Object[] toObjectArray(final Collection<?> collection) {
74 if (collection == null) {
75 return null;
76 }
77 final Object[] arr = (Object[]) Array.newInstance(Object.class, collection.size());
78 int i = 0;
79 for (Iterator<?> it = collection.iterator(); it.hasNext();) {
80 arr[i++] = it.next();
81 }
82 return arr;
83 }
84
85 } |
|