1.数组
数组是容器
为了存储同种数据类型的多个值
数组概念:
数组是存储同一种数据类型的多个元素的集合,也可以一个容器
数组既可以存储基本数据类型,也可以存储引用数据类型
数组初始化:就是为了数组开辟连续的内存空间,并为每个数组元素赋予值
分类:
动态初始化:
只指定长度,由系统给出初始值
格式:数据类型 [ ] 数组名 =new 数据类型[ 数组长度]
静态初始化:
给出初始化,由系统决定长度
格式:数据类型 [ ] 数组名 = new 数据类型 [ ] {元素1,元素2}
系统给出默认初始化值,整数类型都是0
整数类型:byte,short,int,long 默认初始化值:0
负点整数:float,double 默认初始化值:0.0
布尔类型:boolean 默认初始化值“”false
字符类型:char 默认初始化值:'u0000'
'u0000'每个0代表的是16进制的0,四个0就是代表16个二进制
数组的形式:
栈:存储局部变量 堆:存储new出来的数组 方法区:面向对象部分讲解
本地方法区:和系统相关 寄存器:给cpu使用
数组索引越界异常:当访问数组中不存在的索引,会出现索引越界异常
空指针异常:数组已经不再指向堆内存了,而还用数组名去访问元素
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
class demoarray2 //比较大小值 { public static void main (String args[]) { int[] arr={50,100,58,54,60,90,80}; int max=print(arr); System.out.println("最大值="+max); int min=getmin(arr); System.out.println("最小值="+min); } public static int print(int[] arr){ int max=arr[0]; for(int i=0;i<arr.length;i++){ //从数组的第一个开始遍历 if(max<arr[i]){ //如果max记录的值小于的数组的元素 max=arr[i]; //max记录住最大的; } } return max; } public static int getmin(int[] arr){ int min=arr[0]; for(int i=0;i<arr.length;i++){ //从数组的第一个开始遍历 if(min>arr[i]){ //如果max记录的值大于的数组的元素 min=arr[i]; //max记录住最大的; } } return min; } }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
class demoarray3 //反转 { public static void main (String args []){ int[] arr={1,2,3,4,5,6,7,8}; array(arr); print(arr); } public static void array(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; } } public static void print(int[] arr){ for(int i=0;i<arr.length;i++){ System.out.print(arr[i]); } } }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import java.util.Scanner; class demoarray4 { public static void main (String args []){ Scanner sc=new Scanner(System.in); System.out.println("请输入对应的星期范围在1-7"); int week=sc.nextInt(); System.out.println("星期"+getweek(week)); } public static char getweek(int week){ char[] arr={' ','一','二','三','四','五','六','日'}; return arr[week]; //通过索引获取表中的元素 } }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
class demoarray5 { public static void main(String args []){ int[] arr={1,2,3,4,5,6,7}; int index =getindex(arr,7); System.out.println(index); } /* 查找元素索引 1.返回值类型int 2.明确参数列表,int[] arr,int value */ public static int getindex(int [] arr,int value){ for(int i=1;i<arr.length;i++){ //数组的遍历 if(arr[i]==value){ //如果数组中的元素与查找的元素匹配 return i; } } return -1; } }
二维数组:
格式:
数据类型 [ ] [ ] 数组名=new 数据类型 [ ] [ ]
数据类型 数组名 [ ] [ ]=new 数据类型 [ ] [ ]
数据类型 [ ] 数组名 [ ]=new 数据类型 [ ] [ ]
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
class demo1_array { public static void main (String args []){ //int [] [] arr=new int[3] [2]; int [] [] arr={{1,2,3},{4,50,5},{6,7,8,9}}; int sum=0; //定义变量,记录每次相加的结果 for(int i=0;i<arr.length;i++){ //获取每一个一维数组 for(int j=0;j<arr.length;j++){ //获取每一个一维数组的元素 sum=sum+arr[i][j]; //累加 } } System.out.println(sum); } }