不同类型数组合并成一个数组

JAVA学习网 2017-12-16 11:11:02

可能有时候我们需要将一些同类型的数组进行合并成一个数组,传统的方法真的很复杂,但是可以写一个通用的工具类,不就什么都解决了;

其实我也看到网上有很多关于数组合并的,那些什么的我就不用了,直接上我的这个了吧;

队列(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())); }

 

阅读(730) 评论(0)