java数组练习(二)

1. 数组的合并且排序

问题描述:现在给出两个数组  数组 A :“ 1, 7, 9, 11, 13, 15, 17, 19;  数组 B :“ 2, 4, 6, 8, 9, 10” 两个数组合并为数组 C, 按升序排列

代码实现:

import java.util.Arrays;

public class MergeSort {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int[] A=new int[]{1,7,9,11,13,15,17,19};
		int[] B=new int[]{2,4,6,8,9,10};
		int[] C=new int[A.length+B.length];
		int indexA=0,indexB=0,indexC=0;
		while(indexA<A.length && indexB<B.length){
			if(A[indexA]<B[indexB]){
				C[indexC]=A[indexA];
				indexA++;
				indexC++;
			}else if(A[indexA]==B[indexB]){  //相等时考虑将数组 A 和 B 的元素都加进新的数组
				C[indexC]=A[indexA];
				indexA++;
				indexC++;
				C[indexC]=B[indexB];
				indexC++;
				indexB++;
			}else{
				C[indexC]=B[indexB];
				indexB++;
				indexC++;
			}
		}
		//下面考虑B 数组的元素全部添加到新数组C,A还没添加完 时 继续添加A
		while(indexA<A.length){
			C[indexC]=A[indexA];
			indexA++;
			indexC++;
		}
		//下面考虑 A数组的元素全部添加到新数组C,B 还没添加完 时 继续添加 B
		while(indexB<B.length){
			C[indexC]=B[indexB];
			indexB++;
			indexC++;
		}
		System.out.print("新的数组:"+Arrays.toString(C));
	}
}

2. 数组的拷贝

直接上代码:使用字符数组为例   包含三种方法

import java.util.Arrays;

public class ShuZuCopy {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		char[] arr=new char[]{'1','6','2','3','9','4','5','7','8'};
		char[] brr=Copy1(arr);
		char[] crr=Copy2(arr);
		char[] drr=Copy3(arr);
		System.out.print("方法一的结果:");
		System.out.print(Arrays.toString(brr)); 
		System.out.println();
		System.out.print("方法二的结果:");
		System.out.print(Arrays.toString(crr));
		System.out.println();
		System.out.print("方法三的结果:");
		System.out.print(Arrays.toString(drr)); 
	}
	//for循环实现数组的拷贝
	public static char[] Copy1(char[] arr){
		char[] brr=new char[arr.length];
		int aindex=0,bindex=0;
		while(aindex<arr.length && bindex<brr.length){
			brr[bindex]=arr[aindex];
			bindex++;
			aindex++;
		}
		return brr;
	}
	// 使用 clone()方法实现数组的拷贝
	public static char[] Copy2(char[] arr){
		char[] crr=new char[arr.length];
		crr=arr.clone();
		return crr;
	}
	//使用 Arrays 类的 copyOf() 方法实现数组的拷贝
	public static char[] Copy3(char[] arr){
		char[] drr=new char[arr.length];
		drr=Arrays.copyOf(arr,arr.length);
		return drr;
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值