数组的申明和创建
数据类型[] 数组名 //定义
1.静态初始化 创建加赋值
int[] a={12,3,3,4,55};
2.动态初始化
int[] arr=new int[10];
-
数组是多个相同类型数据的组合,实现对这些数据的统一管理
-
数组中的元素可以是任何数据类型的,包括基本数据类型和引用类型,但是不能混用
-
数组创建后,如果没有赋值,则有默认值,int类型:0、short类型:0、byte类型:0、long类型:0、flaot类型:0.0、double类型:0.0、char类型:\u0000、boolean类型:false、String类型:null
-
使用数组的步骤 :1)声明数组并开辟空间2)给数组各个元素赋值3)使用数组
-
数组的下标是从0开始的使用数组
-
数组的下标必须在指定范围内使用,否则报:下标越界异常
-
数组属于引用类型,数组型数据是对象(object)
数组的值传递
基本的数据类型赋值,这个值就是具体的数据,而且相互不影响
数组在默认情况下是引用传递,赋的值是地址
数组的拷贝
public class ArrayExercise04{
public static void main(String[] args){
int[] arr1 = {11,22,33,44,55,66};
int[] arr2 = new int[arr1.length];
for(int i=0;i<arr1.length;i++){
arr2[i] = arr1[i];
}
System.out.println("===arr2===");
for(int i=0;i<arr2.length;i++){
System.out.print(arr2[i] + " ");
}
arr2[0] = 99;
System.out.println("\n" + "===修改后的arr2===");
for(int i=0;i<arr2.length;i++){
System.out.print(arr2[i] + " ");
}
System.out.println("\n==arr1==");
for(int i=0;i<arr1.length;i++){
System.out.print(arr1[i] + " ");
}
}
}
数组的添加
import java.util.Scanner;
public class ArrayAdd{
public static void main(String[] args){
int[] arr = {1,2,3,4};
do{
Scanner myScanner = new Scanner(System.in);
System.out.println("键盘输入你想添加的数字:");
int newArrNum = myScanner.nextInt();
int[] newArray = new int[arr.length+1];
for(int i=0;i<arr.length;i++){
newArray[i] = arr[i];
}
newArray[newArray.length-1] = newArrNum;
arr = newArray;
System.out.println("###扩容后的arr数组为####");
for(int i=0;i<arr.length;i++){
System.out.print( arr[i]+ " ");
}
System.out.println();
System.out.println("键盘输入是否继续执行?Y/N");
char order = myScanner.next().charAt(0);
if(order == 'N'){
break;
}
}while(true);
System.out.println("您已经停止添加数组元素了");
}
}
数组的删减
/*
数组{1,2,3,4,5}进行缩减,提示用户是否继续进行缩减,当只剩下最后一个的时候,
提示不能再进行缩减。
*/
import java.util.Scanner;
public class ArrayReduce{
public static void main(String[] args){
int[] arr = {1,2,3,4,5};
do{
int[] newArray = new int[arr.length - 1];
Scanner myScanner = new Scanner(System.in);
for(int i=0;i<newArray.length;i++){
newArray[i] = arr[i];
}
arr = newArray;
System.out.println("====删减后的arr数组====");
for(int i=0;i<arr.length;i++){
System.out.println(arr[i] + "\t");
}
System.out.println("请问是否还要进行缩减数组的操作?Y/N");
char order = myScanner.next().charAt(0);
if(order == 'N'){
break;
}
if(arr.length==1){
System.out.println("只剩下一个元素了,不允许进行删减元素了");
break;
}
}while(true);
}
}
多维数组
多维数据就是数组中包含数组
//二维数组的遍历
public class ArrayDemo03 {
public static void main(String[] args) {
int[][] arr={{1,2},{4,5},{6,7},{8,9}};
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+" ");
}
}
}
public static void printArray(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}