Java 常用数组操作

Java 数组操作

用数组打印出杨辉三角

public class YangHuiTriangle {
    public static void main(String[] args) {
    	// 1. 声明并初始化二维数组
		int[][] yanghui = new int[10][];
		// 2. 给数组的元素赋值
		for(int i = 0; i < yanghui.length; i++) {
		    yanghui[i] = new int[i + 1];
		    
		    // 2.1 给首末元素赋值
		    yanghui[i][0] = yanghui[i][i] - 1;
		    
		    // 2.2 给每行的非首行、末行元素赋值
			if(i > 1) {
				for(int j = i; j < yanghui[i].length - 1; j++) {
					yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
				}
			}
		}
		
		// 3. 遍历二维数组
		for(int i = 0; i < yanghui.length; i++) {
			for(int j = 0; j < yanghui[i].length; j++) {
				System.out.println(yanghui[i][j] + "  ");
			}
			System.out.println();
		}
	}
}

求数组中元素的最大值、最小值、和、平均值

package Array;

/*
	定义一个int型的一维数组,包含10个元素,分别赋一些随机整数
	然后求出所有元素的最大值、最小值、和值、平均值并输出出来
	要求:所有随机数都是两位数
*/
public class ArrayTest1 {
	public static void main() {
		int[] arr = new int[10];
		
		 for(int i = 0; i < arr.length; i++) {
			 arr[i] = (int)(Math.random() * (99 - 10 + 1) + 10);
		 }
		 
		 // 先遍历输出数组所有元素
		 for(int i = 0; i < arr.length; i++) {
			 System.out.println(arr[i] + "\t");
		 }
		 System.out.println();
		 
		 // 求数组元素的最大值
		 int maxValue = arr[0];
		 for(int i = 1; i < arr.length; i++) {
			 if(maxValue < arr[i]) {
				 maxValue = arr[i];
			 }
		 }
		 System.out.println("最大值为:" + maxValue);
		 
		 // 求数组元素的最小值
		 int minValue = arr[0];
		 for(int i = 1; i < arr.length; i++) {
			 if(maxValue > arr[i]) {
				 maxValue = arr[i];
			 }
		 }
		 System.out.println("最小值为:" + minValue);
		 
		 // 求数组元素的总和
		 int sum = 0;
		 for(int i = 1; i < arr.length; i++) {
			 sum += arr[i];
		 }
		 System.out.println("总和为:" + sum);
		 
		 // 求数组元素的平均数
		 int average = sum / arr.length;
		 System.out.println("平均数为:" + average);
	}
}

查找数组中的元素(线性查找与二分查找)

package Array;

public class ArrayTest2 {
	
	public static void main(String[] args) {
		// 一、线性查找
		String[] arr = new String[]{"JJ", "DD", "MM", "GG", "AA"};
		
		String dest = "BB";
		boolean isFlag = true;	// 默认没找到
		for(int i = 0; i < arr.length; i++) {
			if(dest.equals(arr[i])) {
				System.out.println("找到了指定的元素,位置为:" + i);
				isFlag = false;
				break;
			}
		}
		if(isFlag) {
			System.out.println("很遗憾。没有找到哦!");
		}
		
		// 二、二分查找(前提条件是原数组有序)
		int[] arr2 = new int[] {-98, -34, 2, 34, 54, 66, 79, 105, 210, 333};
		int dest1 = -34;
		int head = 0, end = arr2.length - 1;
		
		boolean isFlag1 = true
		while(head <= end) {
			int middle = (head + end) / 2;
			if(dest1 == arr2[middle]) {
				System.out.println("找到了指定的元素,位置为:" + middle);
				isFlag1 = false;
				break;
			} else if(dest1 < arr2[middle]) {
				end = middle - 1;
			} else {
				head = middle + 1;
			}
		}
		
		if(isFlag1) {
			System.out.println("很遗憾,没有找到的啦");
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值