java遍历数组详细解答

几个例题解答数组问题:

public static void main(String[] args) {
	// TODO Auto-generated method stub
	/*
	 * 1、将数组int arr[]={56,33,51,49,102,23}
	 * 遍历输出打印到控制台打印格式为 [56,33,51,49,102,23]
	 */
	int arr [] = {56,33,51,49,102,23};//定义一个数组
	for(int i=0;i<arr.length;i++){//遍历数组
		if(i==0){//当数组下标为0时输出的内容
			System.out.print("["+arr[i]+",");
		}else if(i<arr.length-1){//当下标满足数组个数减一时输出的内容
			System.out.print(arr[i]+",");
		}else{//当下标等于数组长度时输出的内容
			System.out.print(arr[i]+"]");
		}
	}
	
	System.out.println("");//换行
	System.out.println("");//换行
	/*
	 * 2、利用冒泡排序将数组进行从小到大排序  --   
	 * int arr[]={56,33,51,49,102,23};
	 */
	for(int i=0;i<arr.length-1;i++){//循环轮数
		for(int j=0;j<arr.length-i-1;j++){//每轮循环的次数
			if(arr[j]>arr[j+1]){//如果前面的值大于后面的值,就互换两个元素的值
				int temp =arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
	for(int i=0;i<arr.length;i++){//遍历排序后的数组
		if(i<arr.length-1){//如果下标小于数组的长度减一,输出的内容
			System.out.print(arr[i]+"<");
		}
		if(i == arr.length-1){//如果下标等于数组的长度减一,输出的内容
			System.out.print(arr[i]);
		}
	}
	
	System.out.println("");//换行
	System.out.println("");//换行
	
	
	/*
	 * 利用选择排序将数组进行从大到小排序  --  
	 * int  arr[]={36,11,90,87,156,2};
	 */
	for(int i=0;i<arr.length-1;i++){//循环的轮数
		for(int j=i+1;j<arr.length;j++){//每轮循环的次数
			if(arr[i]<arr[j]){//如果前面的值小于后面的值就互换
				int temp =arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
	}
	for(int i=0;i<arr.length;i++){//遍历排序后的数组
		if(i<arr.length-1){//如果下标小于数组长度减一,输出的内容
			System.out.print(arr[i]+">");
		}
		if(i == arr.length-1){//如果下标等于数组的长度,输出的内容
			System.out.print(arr[i]);
		}
	}
	
	System.out.println("");//换行
	System.out.println("");//换行
	
	/*
	 * 4、现在有如下一个数组:int arr1[]={1,3,4,5,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};
	 */
	int arr1 [] = {1,3,4,5,0,6,6,0,5,4,7,6,7,0,5};//定义一个数组
	int zero = 0;
	for(int i=0;i<arr1.length;i++){//统计数组arr1中0的个数,遇到0,zero就+1
		if(arr1[i]==0){
			zero++;
		}
	}
	//System.out.print(zero);
	System.out.println("");
	System.out.println("");
	
	int newArr [] = new int [arr1.length-zero];//定义一个新的数组,它的长度为数组arr1的长度减去zero的个数
	int j=0;//新数组的下标
	for(int i=0;i<arr1.length;i++){//遍历数组arr1
		if(arr1[i]!=0){//如果爱arr1中的元素不为0,就加入到新的数组中
			newArr[j] = arr1[i];
			j++;//加入新数组后,下标+1
		}
	}
	for(int i=0;i<newArr.length;i++){//遍历生成的新数组
		if(i==0){//如果新数组下标为0,输出的内容
			System.out.print("生成的新数组为["+newArr[i]+",");
		}else if(i<newArr.length-1){//如果新数组下标小于数组长度减一,输出的内容
			System.out.print(newArr[i]+",");
		}else{//如果新数组下标等于数组长度减一,输出的内容
			System.out.print(newArr[i]+"]");
		}
	}
	System.out.println("");//换行
	
	/*
	 * 定义一个整型数组,求出数组元素的和、数组元素的最大值和最小值,并输出所求的结果。
			arr[]={36,11,90,87,156,2};
	 */
	int arr2 [] = new int []{36,11,90,87,156,2};
	//等价于int arr2[]={36,11,90,87,156,2};
	int max = 0;//定义最大值
	int min = 0;//定义最小值
	int sum = 0;//定义和
	for(int i=0;i<arr2.length;i++){//遍历数组
		sum+=arr2[i];//求和
	}
	System.out.println("该数组的和为"+sum);//输出和

	for(int i=0;i<arr2.length-1;i++){
		for(int j1=0;j1<arr2.length-i-1;j1++){
			if(arr2[j1]>arr2[j1+1]){
				int temp = arr2[j1];
				arr2[j1] = arr2[j1+1];
				arr2[j1+1] = temp;
			}
		}
	}
	/*for(int i=0;i<arr2.length;i++){
		System.out.print(arr2[i]+"  ");
	}*/
	System.out.println("");
	max = arr2[arr2.length-1];
	System.out.print("该数组的最大值为"+max);
	System.out.println("");
	min = arr2[0];
	System.out.print("该数组的最小值为"+min);
	
	System.out.println("");
	
	/*
	 * 反转数组: arr3[]={36,11,90,87,156,2,58};
	 */
	int arr3 [] = new int []{36,11,90,87,156,2,58};
	int newArr3 [] = new int [arr3.length];
	int k=0;
	for(int i=0;i<arr3.length;i++){
		newArr3[k] = arr3[arr3.length-1-i];
		k++;
	}
	for(int i=0;i<newArr3.length;i++){
		if(i==0){
			System.out.print("["+newArr3[i]+",");
		}else if(i<newArr3.length-1){
			System.out.print(newArr3[i]+",");
		}else{
			System.out.print(newArr3[i]+"]");
		}
	}
	
	System.out.println("");
	/*
	 * 查表法:在命令行输入1~7的值,利用下标 获取星期几 1~7分别对应星期一~星期天;输出在控制台 星期一
	 */
	String str =args[0];
	int a = Integer.parseInt(str);
		String str1[]={"","星期一","星期二","星期三","星期四","星期五","星期六","星期天"};
		if(a<0 || a>8){
			System.out.print("输入的参数不合法,请重新输入!");
		}
		if(a>0 && a<8){
			for(int i=0;i<str1.length;i++){
				if(str1[a] == str1[i]){
					System.out.println("今天是"+str1[i]);
				}
			}
			
		}
	
	
	
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值