数组合并

/*
去掉数组中的0元素 
 */
public class TestFour{
	public static void main(String[]args)
	{
		int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
		int length=0;//获取新数组的长度
		for(int num:oldArr)
		{
			if(num!=0)
				length++;
		}
		
		int []newArray=new int[length];
		//以下是此程序的精妙之处
		int size=0;
		for(int n:oldArr)
		{
			if(n!=0)
			{
				newArray[size++]=n;
			}
		}
		for(int n:newArray)
		{
			System.out.println(n);
		}
		
	}
}

此程序的精妙之处在于:结合增强式for循环,给新数组赋值。。。。。。

以下是我第一次写的此题的循环

/*
4.合并数组操作:
现有如下一个数组:int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,
生成的新数组为:int newArr [] ={1,3,4,5,6,6,5,4,7,6,7,5}
 
 */
 public class TogetherArray{
	 public static void main(String[]args)
	 {
		 
		 int arrayLength=0;
		 int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
		System.out.println("合并前的数组:");
		for(int i=0;i<oldArr.length;i++)
		 {
			 System.out.println(oldArr[i]);
		 }
		
		 //实现数组的合并
		 togetherArr(oldArr);
	 }
	 
	 //实现数组的合并
	 public static void togetherArr(int []b)
	 {
		 int m = 0;//实现赋值计数
		 int n = b.length;//计数newArr的长度
		 int i = 0;
		
		 for(i=0;i<b.length;i++)
		 {
			 if(b[i]==0)
				n--; 
		 }
		 
		//创建新函数接收大于零的数
		 int[] c=new int[n];
		 
		 //实现赋值
		 for(i=0;i<b.length;i++)
		 {
			 if(b[i]!=0)
			 {
				c[m]=b[i];
					m++;
				 
			 }
		 }
		 System.out.println("合并后的数组");
		for(m=0;m<c.length;m++)
		{
			System.out.println(c[m]);
		}
		 
	 }
 }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章