可能有时候我们需要将一些同类型的数组进行合并成一个数组,传统的方法真的很复杂,但是可以写一个通用的工具类,不就什么都解决了;
其实我也看到网上有很多关于数组合并的,那些什么的我就不用了,直接上我的这个了吧;
队列(Queue)是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。
在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将是最后被删除的元素,因此队列又称为“先进先出”(FIFO—first in first out)的线性表。
在java5中新增加了java.util.Queue接口,用以支持队列的常见操作。该接口扩展了java.util.Collection接口。
Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取并移出元素。它们的优点是通过返回值可以判断成功与否,add()和remove()方法在失败的时候会抛出异常。 如果要使用前端而不移出该元素,使用
element()或者peek()方法。
值得注意的是LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。
/** * 将多个数组合并成一个数组 * @param arrs */ public static <T> T[] merg(T[]... arrs) { Queue<T> queue = new LinkedList<T>(); for (T[] arr : arrs) { if (null != arr) { for (T e : arr) {
//add()和remove()方法在使用的时候会出现异常,所以这里使用了offer() queue.offer(e); } } } if (queue.isEmpty()) { return null; } Class<T> type = (Class<T>) queue.peek().getClass(); return queue.toArray((T[]) Array.newInstance(type, queue.size())); }