目录
目录
Java数组
⭐数组介绍
数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。即:数组就是一组数据
●实例
public class array1 {
public static void main(String[] args) {
double total = 0;
//double[] 表示double类型数组,数组名为hens
double[] hens = {3, 5, 1, 3.4, 2, 50,7,8,9,10,11,12,14,15,16,161,43};
for (int i = 0; i < hens.length; i++) {
total = total + hens[i];
}
System.out.println("总体重=" + total + " 平均体重=" + (total/6));
}
}
⭐数组的使用
♦使用方式1-动态初始化
数组的定义——数据类型 数组名[] = new 数据类型[大小]
int a[] = new int[5]; //创建了一个数组,名字a,存放5个int
说明:这是定义数组的一种方法。
●数组的引用(使用)
数组名[下标/索引]
import java.util.Scanner;
public class array2 {
public static void main(String[] args) {
//创建描扫
Scanner myScanner = new Scanner(System.in);
double scores[] = new double [5];
//输入数组
for (int i = 0; i < scores.length; i++){
System.out.print("请输入"+ (i+1)+ "个元素");
scores[i]= myScanner.nextDouble();
}
//遍历数组
for (int i = 0; i < scores.length; i++){
System.out.println("值="+scores[i]);
}
}
}
♦使用方式2-动态初始化
●先声明数组
语法:数据类型 数组名[];也可以数据类型[] 数组名;
int a[];或者 Int[] a;
●创建数组
语法:数组名 = new 数据类型[大小];
a = new int[10];
♦使用方式3-静态初始化
●初始化数组
语法:数据类型 数组名[] = {元素值,元素值....};
int a[] = {2,5,6,7,8} //如果知道数组有多少个元素,具体值相当于下面的方法
int a[] = new int[9];
⭐数组使用注意事项和细节
-
数组是多个相同类型数据的组合,实现对这些数据的统一管理
-
数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用
-
数组创建后,如果没有赋值,有默认值——int 0,short 0 ,boolean false ,String null;
-
使用数组的步骤●声明数组并开辟空间●给数组各个元素赋值●使用数组
-
数组的下表是从0开始的
-
数组下标必须在指定范围内使用,否则报:下标越界异常
/*比如*/int[] arr = new int[5];//则有下标为0-4
-
数组是引用类型,数组型数据是对象(object)
⭐数组赋值机制
-
基本数据类型赋值,这个值就是具体的数据,而且相互不影响。
int n1= 2; int n2 = n1;
-
数组在默认情况下是引用传递,赋的值是地址。
int[] arr1 = {1,2,3} int[] arr2 = arr1;
⭐数组拷贝
实现数组拷贝(内容复制)——将Int[] arr1 = {10,20,30};拷贝到arr2数组,数据空间需要独立。
public static void main(String[] args) {
int[] arr1 = {10,20,30};
//创建一个新的数组arr2,开辟新的数据空间
//大小 arr1.lenght;
int[] arr2 = new int[arr1.length];
//遍历arr1,把每个元素拷贝到arr2对应元素的位置
for (int i = 0;i< arr1.length;i++){
arr2[i] = arr1[i];
}
arr2[0] = 100;
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< arr1.length;i++){
System.out.println(arr2[i]);
}
}
⭐数组反转
要求:把数组的元素内容反转——arr{11,22,33,44,55,66}->{66,55,44,33,22,11}
1)方式1:通过找规律反转
public static void main(String[] args) {
/**
* 方式1:通过找规律反转
* 1、定义数组
* 2、规律:
* 1.把arr[0]和arr[5]进行交换
* 2.把arr[1]和arr[4]进行交换
* 3.把arr[2]和arr[3]进行交换
* 4.一共进行了3次交换 = arr.lenght / 2
* 5.每次交换时,对应的下标是arr[i]和arr[arr.lenght -1 -i]
*/
int[] arr = {11,22,33,44,55,66};
int team = 0;
int len = arr.length;
for (int i = 0;i< len/2;i++){
team= arr[len -1 - i];//保存
arr[len -1 - i] = arr[i];
arr[i]=team;
}
for (int i = 0;i< arr.length;i++){
System.out.println(arr[i]);
}
}
2)方式2:使用逆序赋值方式
public static void main(String[] args) {
/**
* 方式二:使用逆序赋值方式
* 1、先创建一个新的数组arr2,大小arr.lenght
* 2、逆序遍历arr,将每个元素拷贝到arr2的元素中(顺序拷贝)
* 3、增加一个循环变量j->0->5
* 4、当for循环结束,arr2就是一个逆向数组
* 5、让arr指向arr2数据空间,此时arr原来的数据空间就没有变量引用,会被销毁
*/
int[] arr = {11,22,33,44,55,66};
int[] arr2 = new int[arr.length];
//逆序遍历arr
for (int i = arr.length -1, j = 0; i>=0; i--, j++){
arr2[j] = arr[i];
}
arr = arr2;
for (int i = 0;i<arr.length;i++){
System.out.print(arr[i] +"\t");
}
}