【Java基础】java学习之旅07-二维数组

例:

		int[] array1d = new int[5];
		
		System.out.println(Arrays.toString(array1d));
		
		int[][] array2d = new int[2][3];
		
		for (int i = 0; i < array2d.length; i++) {
			System.out.println(array2d[i].length);
			System.out.println(Arrays.toString(array2d[i]));
		}
  • array2d可以理解为一个容量是2的一维数组,这个一维数组的2个元素都是容量为3的一维数组
  • 可以把整个二维数组看成一个2*3的矩阵,2行3列

二维数组的练习:

输入一个不超过5位数的整数,输出中文形式。如:12345 -> 一万二千三百四十五

public static void main(String[] args) {
		
		//汉字数组,下标和内容对应
		char[] chinese = {'零', '一', '二', '三', '四', '五', '六', '七', '八', '九'};
		//单位
		String[] unit = {"","十", "百", "千", "万"};
		
		//用户输入的数字
		int num = 10010;
		
		//获取数字的位数
		int length = (num + "").length();
		
		//用来存放汉字
		String chineseNum = "";
		//用来存放上一个数字
		int lastNum = 0;
		
		//循环遍历各位数字
		for (int i = 0; i < length; i++) {
			//获取个位数字
			int temp = num % 10;
			//去掉个位数重新赋值
			num /= 10;
			//如果上一位数字是0,本位数字还是0,只需要一个。
			if (lastNum == 0 && temp == 0) {
				continue;
			//本位数字是0不需要拼接单位
			}else if (temp == 0) {
				chineseNum = chinese[temp] + chineseNum;
			//正常情况,拼接数字和单位
			} else {
				chineseNum = chinese[temp] + unit[i] + chineseNum;
			}
			//记录本位数字,用于下次循环的判断
			lastNum = temp;
		}
		
		System.out.println(chineseNum);
		
	}

一个整型数组中,存在若干个重复的元素,打印出所有重复元素的索引和元素值。

public static void main(String[] args) {
		
		int[] array = {1,2,4,4,5,5,6,7,2,8,6,2};
		
		for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array.length; j++) {
				if (array[i] == array[j] && i != j) {
					System.out.println(i + "::" + array[i]);
					break;
				}
			}
		}
		
	}

在上一题基础上,去除重复元素,并生成一个新的数组,新数组不存在空位。

public static void main(String[] args) {
		
		int[] array = {1,2,4,4,5,5,6,7,2,8,6,2};
		int[] newArray = new int[array.length];
		
		//用于统计有多少个不重复的数字
		int count = 0;
		
		flag1:
		//一次遍历所有数字
		for (int i = 0; i < array.length; i++) {
			//和之后的所有数字进行比较
			for (int j = i + 1; j < array.length; j++) {
				//如果有重复,直接跳过进行下一个数字的比较
				if (array[i] == array[j]) {
					continue flag1;
				}
			}
			//将不重复的数字存放到新数组
			newArray[count] = array[i];
			//统计不重复数字的个数
			count++;
		}
		
		//去掉新数组的空位
		newArray = Arrays.copyOf(newArray, count);
		
		System.out.println(count);
		System.out.println(Arrays.toString(newArray));
		
	}

总结:

二维数组可以理解为为一个数组分配了多少个内存空间,每个内存空间里面存放的也是数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值