package com.yanzuoguang.util.helper; import java.util.*; /** * 字符串帮主类 * * @author 颜佐光 */ public class ArrayHelper { /** * 合并为数组列表 * * @param from 参数列表 * @param froms 参数列表 * @param <T> 泛型类型 * @return 非空字符串数组 */ @SafeVarargs public static <T> List<T> megerNotEmpty(T from, Collection<T>... froms) { List<T> tos = new ArrayList<>(); if (from != null && !StringHelper.isEmpty(from)) { tos.add(from); } if (froms == null) { return tos; } for (Collection<T> list : froms) { if (list == null) { continue; } for (T item : list) { if (!StringHelper.isEmpty(item)) { tos.add(item); } } } return tos; } /** * 获取第一个对象 * * @param froms * @param <T> * @return */ public static <T> T getFirst(List<T> froms) { return froms.size() > 0 ? froms.get(0) : null; } /** * 获取第一个对象 * * @param froms * @param <T> * @return */ public static <T> T getFirst(Collection<T> froms) { if (froms == null) { return null; } for (T from : froms) { return from; } return null; } /** * 判断对象是否是数组或者List * * @param val * @return */ public static boolean isArrayOrList(Object val) { return val != null && (val instanceof List || val.getClass().isArray()); } /** * 判断对象是否是数组或者List * * @param val * @return */ public static boolean isArrayOrCollection(Object val) { return val != null && (val instanceof Collection || val.getClass().isArray()); } /** * 判断对象是否是数组或者List * * @param val * @return */ public static int getSize(List val) { return val != null ? val.size() : 0; } /** * 判断对象是否是数组或者List * * @param val * @return */ public static boolean isEmpty(List val) { return val == null || val.isEmpty(); } /** * 获取对象为对象列表 * * @param val 需要获取的对象,可以为List或者Array或者其他对象. * @return */ public static List getList(Object val) { boolean isArray = isArrayOrList(val); List list; // 判断处理 if (val instanceof List) { list = (List) val; } else if (isArray) { Object[] arr = (Object[]) val; list = Arrays.asList(arr); } else { list = new ArrayList(); list.add(val); } return list; } /** * 获取对象为对象列表 * * @param val 需要获取的对象,可以为List或者Array或者其他对象. * @return */ public static Collection getCollection(Object val) { boolean isArray = isArrayOrCollection(val); Collection list; // 判断处理 if (val instanceof Collection) { list = (Collection) val; } else if (isArray) { Object[] arr = (Object[]) val; list = Arrays.asList(arr); } else { list = new ArrayList(); list.add(val); } return list; } /** * 将数组添加到列表中 * * @param from * @param <T> */ public static final <T> List<T> mergeList(T[]... from) { List<T> list = new ArrayList<>(); addList(list, from); return list; } /** * 将数组添加到列表中 * * @param from * @param <T> */ public static final <T> List<T> mergeList(List<T>... from) { List<T> list = new ArrayList<>(); addList(list, from); return list; } /** * 将数组添加到列表中 * * @param list * @param from * @param <T> */ public static final <T> void addList(List<T> list, T[]... from) { for (T[] item : from) { for (T sub : item) { list.add(sub); } } } /** * 将数组添加到列表中 * * @param list * @param from * @param <T> */ public static final <T> void addList(List<T> list, List<T>... from) { for (List<T> item : from) { for (T sub : item) { list.add(sub); } } } }