从零开始学Java(打卡第13天)

目标开发一款自己喜欢且能最大限度让用户参与建设的社交软件。

 笔记:

数组:可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。

public class Array01 {
	public static void main(String[] args) {
		double[] hens = {3, 5, 1, 3.4, 2, 50};
		double total = 0;
		for (int  i = 0; i < 6; i++) {
			total += hens[i];
		}
		System.out.println(total / 6);
	}
}

通过hens【下标】来访问数组的元素,下标是从0开始编号的,可以通过hens.length来引入数组的长度,(说人话就是数组中元素的个数)、进一步优化上面的代码就是

public class Array01 {
	public static void main(String[] args) {
		double[] hens = {3, 5, 1, 3.4, 2, 50};
		double total = 0;
		for (int  i = 0; i < hens.length; i++) {
			total += hens[i];
		}
		System.out.println(total / hens.length);
	}
}

 数组的使用

1、动态初始化     ——数据类型 [ ] 数据名  =   new 数据类型[ 大小 ]   比如 int a[ ] = new int [ 5 ],代表创建一个数组,名字a,存放5个int.

import java.util.Scanner;
public class Array01 {
	public static void main(String[] args) {
		double[] scores = new double[5];
		Scanner myScanner = new Scanner(System.in);
		for (int  i = 0; i < scores.length; i++) {
			System.out.println("请输入第" + (i + 1) + "个元素的值");
			scores[i]= myScanner.nextDouble();
		}
		for (int i = 0; i < scores.length; i ++) {
			System.out.println("第" + (i + 1) + "个元素的值" + scores[i]);
		}
	}
}

2、动态使用,可以先声明后创建

double[] scores;
scores = new double[5];

3、静态初始化 ——语法   数据类型 [ ] 数据名 = {  ,  ,  ,  ...};

等同于,int[ ]   a = new int [9];  a[0]=1,a[1]=3  ……

数组使用注意事项和细节:

1、数组是多个相同类型数据的组合,实现对这些数据的统一管理;

2、数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。

3、数组创建后,如果没有赋值,有默认值,整型都是0,浮点型是0.0,char是\u0000,boolean是false,string 是null

4、使用数组的步骤,声明数组并开辟空间,给数组各个元素赋值,使用数组

5、数组的下标是从0开始的

6、数组下标必须在指定范围内使用,否则报:下标越界异常

7、数组属于引用类型,数组型数据是对象{object};

课后题:

public class Array01 {
	public static void main(String[] args) {
		char[] zimu = new char[26];
		for (int i = 0; i < zimu.length; i++) {
			zimu[i] = (char)('A' + i);

		}
		for (int i = 0; i < zimu.length; i++) {
			System.out.print(zimu[i] + " ");
		}
	}
}
public class Array01 {
	public static void main(String[] args) {
		int[] arr = {4, 1, 9, 10, 23};
		int max =arr[0];
		int maxIndex = 0;
		for (int i = 1; i < arr.length; i++) {
			if (max < arr[i]) {
				max = arr[i];
				maxIndex = i;
			}
		}
		System.out.println("max=" + max + " maxIndex=" + maxIndex);
	}
}

数组赋值机制

 1、基本数据类型赋值,这个值就是具体的数据,而且相互不影响。值拷贝(值传递)

int n1 = 1;
int n2 = n1;
int n2 =3;

 n2的改变不会影响n1;

2、数组在默认情况下是应用传递,赋的值是地址。引用赋值(引用传递)

int[] arr1 = {0, 1, 2};
int[] arr2 = arr1;
arr2[0] = 3;

数组arr2改变一个元素,会造成数组arr1也同时改变。

 

 将arr1,数据COPY至arr1并使得arr2独立于arr1

public class Array01 {
	public static void main(String[] args) {
		int[] arr1 = {1, 2, 3, 4};
		int[] arr2 = new int[arr1.length];
		for (int i = 0; i < arr1.length; i++) {
			arr2[i] = arr1[i];
		    arr2[0] = 5;
		}
		System.out.println("===arr1===");
		for (int i = 0; i < arr1.length; i++) {
			System.out.println(arr1[i]);
		}
		System.out.println("===arr2===");
		for (int i = 0; i < arr2.length; i++) {
			System.out.println(arr2[i]);
		}
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值