Java基础 3.26

1.数组反转

规律反转

public class Array04 {
	public static void main(String[] args) {
		int arr[] = {11, 22, 33, 44, 55, 66};
		int temp = 0;
		int len = arr.length;
		for (int i = 0; i < len / 2; i++) {
			temp = arr[arr.length - 1 - i];
			arr[arr.length - 1 - i] = arr[i];
			arr[i] = temp;
		}
		for (int i = 0; i < 6; i++) {
			System.out.println("arr = " + arr[i]);
		}
	}
}

逆序赋值

public class Array04 {
	public static void main(String[] args) {
		int arr1[] = {11, 22, 33, 44, 55, 66};
		//创建一个数组arr2, 大小arr1.length
		//逆序遍历arr1, 将每个变量拷贝到arr2的元素中
		//增加一个循环变量j
		int arr2[] = new int[arr1.length];
		for (int i = arr1.length - 1, j = 0; i >= 0; i--, j++) {
			arr2[j] = arr1[i]; 
		}
		arr1 = arr2;//让arr1指向arr2的数据空间, 此时arr1原来的数据空间就没有变量引用,
				    //会被当作垃圾销毁
		for (int i = 0; i < 6; i++) { 
			System.out.println(arr1[i]);
		}
	}
}

2.数组扩容

基础:在固有数组上直接添加数据

public class Array03 {
	public static void main(String[] args) {
		int arr1[] = {1, 2, 3};
		int arr2[] = new int[arr1.length + 1];
		//遍历arr1数组,依次将arr1的元素拷贝到arr2数组
		for (int i = 0; i < arr1.length; i++) {
			arr2[i] = arr1[i];
		}
		//把4赋给arr2最后一个元素
		arr2[arr2.length - 1] = 4;
		//让arr1指向arr2
		arr1 = arr2;
		//输出查看效果
		for (int i = 0; i < arr1.length; i++) {
			System.out.println(arr1[i]);
		}
	}
}

进阶:能主动接受用户输入,动态调整数组大小

import java.util.Scanner;
public class Array04 {
	public static void main(String[] args) {
		Scanner myScanner = new Scanner(System.in);
		int arr1[] = {1, 2, 3};
		do {
			int arr2[] = new int[arr1.length + 1];
			//遍历arr1数组,依次将arr1的元素拷贝到arr2数组
			for (int i = 0; i < arr1.length; i++) {
				arr2[i] = arr1[i];
			}
			System.out.println("请输入你要添加的元素: ");
			//把addnum赋给arr2最后一个元素
			int addnum = myScanner.nextInt();
			arr2[arr2.length - 1] = addnum;
			//让arr1指向arr2
			arr1 = arr2;
			//输出查看效果
			for (int i = 0; i < arr1.length; i++) {
				System.out.println(arr1[i]);
			}
			//询问是否继续输入
			System.out.println("是否继续输入(y/n)?");
			String back = " ";
			back = myScanner.next();
			if ("y".equals(back)) {
				continue;
			} else {
				break;
			}
		} while (true);
		System.out.println("输入结束!");
		for (int i = 0; i < arr1.length; i++) {
			System.out.println(arr1[i]);
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值