目标开发一款自己喜欢且能最大限度让用户参与建设的社交软件。
笔记:
数组:可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。
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]);
}
}
}