栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java数组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java数组

二、二维数组

二维数组如何声明和初始化?

静态初始化的一种方式?
int[][] arr = new int[][]{{1,2,3},{3,4,5},{6,7,8,9}};

动态初始化的2种方式?
int[][] arr = new int[3][4];
int[][] arr = new int[3][];

如何调用动态、静态数组指定位置的元素?

如何获取二维数组的长度以及里面元素的长度?

如何遍历二维数组?

二维数组元素的默认初始化值?(2种方式)(内层元素、外层元素、元素名)

二维数组的内存如何解析?

练习

package com.atguigu.contact;



public class ZhuShi {
	public static void main(String[] args) {
		int sum = 0;
		int[][] arr = new int[][]{{3,5,8},{12,9},{7,0,6,4}};
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				sum = sum + arr[i][j];
				
			}
		}
			System.out.println(sum);
	}
}//sum = 54

package com.atguigu.contact;

public class ZhuShi {
	public static void main(String[] args) {
		int[][] yanghui = new int[10][];
		for (int i = 0; i < yanghui.length; i++) {
			yanghui[i] = new int[i + 1];

			yanghui[i][0] = yanghui[i][i] = 1;

			if (i > 1) {
				for (int j = 1; j < yanghui[i].length - 1; j++) {

					yanghui[i][j] = yanghui[i - 1][j - 1] + yanghui[i - 1][j];

				}

			}
		}
		for (int i = 0; i < yanghui.length; i++) {
			for (int j = 0; j < yanghui[i].length; j++) {
				System.out.print(yanghui[i][j] + " ");

			}
			System.out.println();
		}
	}
}

面试题目: 创建一个长度为6的int数组,要求数组元素的值都在1-30之间,且是随机赋值。同时要求数组元素的值各不相同。

package com.atguigu.contact;

public class ZhuShi {
	public static void main(String[] args) {
		// 创建一个长度为6的int数组,要求数组元素的值都在1-30之间,且是随机赋值。
		// 同时要求数组元素的值各不相同。
		// 方式一:
		int[] arr = new int[6];
		for (int i = 0; i < arr.length; i++) {
			arr[i] = (int) (Math.random() * 30) + 1;
			for (int j = 0; j < i; j++) {
				if (arr[j] == arr[i]) {
					i--;
					break;
				}

			}

		}
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
		// 方式二:
		int[] arr = new int[6];
		for (int i = 0; i < arr.length; i++) {
			arr[i] = (int) (Math.random() * 30) + 1;
			boolean flag = false;
			while (true) {
				for (int j = 0; j < i; j++) {
					if (arr[i] == arr[j]) {
						flag = true;
						break;

					}
					if (flag) {
						arr[i] = (int) (Math.random() * 30) + 1;
						flag = false;
						continue;
					}
				}
				if (flag == false) {
					break;
				}

			}
		}
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}

	}

}

定义一个int的一维数组,包含10个元素,分别赋一些随机整数,
然后求出所有元素的最大值、最小值、值。
要求所有的随机数都是两位数。

package com.atguigu.contact;

public class ZhuShi {
	public static void main(String[] args) {
		// 定义一个int的一维数组,包含10个元素,分别赋一些随机整数,
		// 然后求出所有元素的最大值、最小值、值。
		// 要求所有的随机数都是两位数。
		int[] arr = new int[10];
		int max = 0;
		int min = 99;
		int sum = 0;
		

		for (int i = 0; i < arr.length; i++) {
			arr[i] = (int) (Math.random() * 90) + 10;
			if (arr[i] > max) {
				max = arr[i];
			}
			if (arr[i] < min) {
				min = arr[i];
			}

		}

		for (int i = 0; i < arr.length; i++) {
			sum += arr[i];
			System.out.print(arr[i] + " ");
		}
		System.out.println("最大值为:" + max);
		System.out.println("最大值为:" + min);
		System.out.println("最大值为:" + sum);
		System.out.println("平均数为:" + sum/10);

	}

}

package com.atguigu.contact;

public class ZhuShi {
	public static void main(String[] args) {
		int[] array1 = new int[] { 2, 3, 5, 7, 11, 13, 17, 19 };
		int[] array2;
		for (int i = 0; i < array1.length; i++) {
			System.out.print(array1[i] + " ");
		}
		System.out.println();
		// array2 = array1;//快捷方式
		// 数组的复制
		array2 = new int[array1.length];
		for (int i = 0; i < array2.length; i++) {
			array2[i] = array1[i];
		}

		for (int i = 0; i < array2.length; i++) {
			if (i % 2 == 0) {
				array2[i] = i;
			}
			System.out.print(array1[i] + " ");
		}
	}

}

数组的复制、反转

package com.atguigu.contact;

public class ZhuShi {
	public static void main(String[] args) {
		//数组的复制、反转
		String[] str = new String[]{"GG","JJ","DD","MM","HH"};
		
		//算法的复制(new开辟新的空间,赋值同一个地址值)
		String[] str1 = new String[str.length];
		for (int i = 0; i < str1.length; i++) {
			str1[i] = str[i];
		}
		
		//数组的反转
		String temp;
		//方法一:
		for (int i = 0; i < str.length/2; i++) {
			temp = str[i];
			str[i] = str[str.length - 1 - i];
			str[str.length - 1 - i] = temp;
		}
		//方法二:
		for (int i = 0, j = str1.length - 1; i < j;i++,j--) {
			temp = str[i];
			str[i] = str[j];
			str[j] = temp;
		}
		for (int i = 0; i < str.length; i++) {
			System.out.print(str[i] + "t");
		}
	}
}

数组的查找

package com.atguigu.contact;

public class ZhuShi {
	public static void main(String[] args) {
		// 数组的查找
		// ①线性查找
		String[] str = new String[] { "GG", "JJ", "DD", "MM", "HH" };
		boolean flag = false;
		String find = "DD";
		for (int i = 0; i < str.length; i++) {
			if (str[i] == find) {
				flag = true;
				System.out.println("恭喜你!找到了,位置为:" + i);
				break;
			}
		}
		if (flag == false) {
			System.out.println("很遗憾,没有找到。");
		}
		// ②二分法查找
		int temp;
		int find = 78;
		boolean flag = true;

		int[] arr = new int[] { 99, 66, 789, 45, 1, 78 };
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < i; j++) {
				if (arr[i] < arr[j]) {
					temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;

				}

			}
		}
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + "t");
		}
		int head = 0;
		int end = arr.length - 1;

		while (head <= end) {
			int middle = (head + end) / 2;
			if (find == arr[middle]) {
				flag = false;
				System.out.println("恭喜你!找到了,位置为:" + middle);
				break;
			} else if (find < arr[middle]) {
				end = middle - 1;
			} else if (find > arr[middle]) {
				head = middle + 1;
			}
		}

	}
}

数组的冒泡排序

package com.atguigu.contact;

public class ZhuShi {
	public static void main(String[] args) {
		// 数组的冒泡排序
		int[] arr = new int[] { 23, 22, 14, 787, 15, 55 };
		int temp;
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr.length - 1 - i; j++) {
				if (arr[j] > arr[j + 1]) {
					temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
		}
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + "t");
		}
	}
}

数组Arrays工具类的使用

package com.atguigu.contact;

import java.util.Arrays;

public class ZhuShi {
	public static void main(String[] args) {
		//判断两个数组是否相等。
		int[] arr1 = new int[]{1,2,3,4};
		int[] arr2 = new int[]{1,3,2,4};
		boolean isEquals = Arrays.equals(arr1,arr2);
		System.out.println(isEquals);
		
		//输出数组信息
		System.out.println(Arrays.toString(arr1));
		
		//将指定的值填充到数组中
		Arrays.fill(arr1, 10);
		System.out.println(Arrays.toString(arr1));
		
		//对数组进行排序
		Arrays.sort(arr2);
		System.out.println(Arrays.toString(arr2));
		
		//二分法查找
		int[] arr3 = new int[]{2,3,5,78,99,101,556,878};
		int index = Arrays.binarySearch(arr3, 78);
		System.out.println(index);
		
	}
}

数组中的常见异常

package com.atguigu.contact;

import java.util.Arrays;

public class ZhuShi {
	public static void main(String[] args) {
		//数组角标越界的异常:ArrayIndexOutOfBoundsException
		//出现异常,程序运行终止
		int[] arr = new int[]{1,2,3,4,5};
		for (int i = 0; i <= arr.length; i++) {
			System.out.println(arr[i]);
		}
		//空指针异常:NullPointerException
		int[][] arr1 = new int[3][];
		System.out.println(arr1[0][0]);
		
		
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749955.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号