Java Day13

数组操作
for循环给数组赋值时,注意

i < arr.length
在这里插入图片描述
i = arr.length时超出了数组最大长度

min的定义和使用要注意在同一个作用域

  1. 数组作为方法参数的固定格式
    (数据类型[] 数组参数名)
  2. 数组作为方法的实际参数的固定格式
    (数组名)
  3. 数组名作为方法的参数,实际传递的是数组空间首地址,就是和数组地址转移问题是一致的
  4. 方法执行需要参数,如果没有给予对应格式的实际参数,直接报错

练习
a. 在一个int类型数组中,存储的内容是1 ~ 10
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
使用代码找出,元素 == 5 所在下标位置

找出元素5对应的下标位置
	1. 这里需要利用循环遍历数组,查询操作
	2. 查询结果不确定,有可能找到,有可能找不到
	3. 在查询之前我们假设对应的数据时不存在的
		-1 作为保存目标数据的初始值
class HomeWork1 {
	public static void main(String[] args) {
		/*
		静态创建数组
			数组的数据类型存储为int类型
			数组名为arr,数组中的元素是大括号中的内容
			大括号中每一个元素使用逗号隔开
		*/
		int[] arr = {12, 32, 23, 14, 75, 16, 67, 89, 19, 110};
		
		// index是保存找到元素的下标位置,-1是非法下标
		int index = -1;
		
		// arr.length是获取数组的容量属性 Capacity
		for (int i = 0; i < arr.length; i++) {
			// 遍历数组,找到指定下标i元素值为5
			if (75 == arr[i]) {
				// 保存下标i数据到index中
				index = i;
				// 已经找到数据,循环终止!!!
				break;
			}
		}
		
		// 展示index保存的数据,如果index的值还是-1,告知未找到
		if (index != -1) { // index > -1
			System.out.println("index : " + index);
		} else {
			System.out.println("Not Found 未找到!!!");
		}
	}
}

/*
c. 在一个int类型数组中,存储的内容是
int[] arr = {11, 31, 15, 27, 49, 52, 34, 96, 18, 10};
使用代码找出数组中最大元素所在下标位置

如何查找最大值???
	1. 假设下标为0的元素是最大值
	2. 遍历整个数组,两两比较
	3. 如果发现有数据大于我们假设数据,保存较大值

*/

class HomeWork3 {
	public static void main(String[] args) {
		// 假设下标为0的元素是最大值
		int maxIndex = 0;
		int[] arr = {11, 31, 15, 27, 49, 52, 34, 96, 18, 10};
		
		// 遍历操作过程中循环变量i 从1开始,提高效率
		for (int i = 1; i < arr.length; i++) {
			/*
			max是假设的最大值下标位置,如果发现下标为max的元素
			小于下标为i的元素,max保存i的值,i值是一个下标数据
			*/
			if (arr[maxIndex] < arr[i]) {
				maxIndex = i;
			}
		}
		
		System.out.println("最大值下标位置:" + maxIndex);
		System.out.println("最大值:" + arr[maxIndex]);
	}
}

/*
d. 在一个int类型数组中,存储的内容是
int[] arr = {11, 31, 15, 27, 49, 52, 34, 96, 18, 10};
使用代码找出数组中最小元素所在下标位置
*/

class HomeWork4 {
	public static void main(String[] args) {
		// 假设下标为0 的元素是最小值
		int minIndex = 0;
		int[] arr = {11, 31, 15, 27, 49, 52, 34, 96, 18, 10};
		
		for (int i = 1; i < arr.length; i++) {
			if (arr[minIndex] > arr[i]) {
				minIndex = i;
			}
		}
		
		System.out.println("最小值下标位置:" + minIndex);
		System.out.println("最小值:" + arr[minIndex]);
	}
}
class Demo9 {
	public static void main(String[] args) {
		int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
		
		System.out.print("方法调用之前:");
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
        
		System.out.println();
		reverse(arr);
		
		System.out.print("方法调用之后:");
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
        
		System.out.println();
	}
	
	/**
	* 数组逆序
	*
	* @param arr 需要被逆序的int类型数组
	*/
	public static void reverse(int[] arr) {
		for (int i = 0; i < arr.length / 2; i++) {
			int temp = arr[i];
			arr[i] = arr[arr.length - 1 - i];
			arr[arr.length - 1 - i] = temp;
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值