java学习日记6

it2023-10-22  76

15 数组理解 java的编译器不会检查数组的下标。

i<numbers.length 这个意思是遍历整个数组。

Scanner in=new Scanner(System.in); double sum=0; int cnt=0; cnt= in.nextInt(); if(cnt>0) { int []numbers=new int[cnt]; for(int i=0;i<numbers.length;i++ ) { numbers[i]=in.nextInt(); sum+=numbers[i]; } double average =sum/cnt; for(int i=0;i<numbers.length;i++) { if(numbers [i]>average) { System.out.println(numbers[i]); } }+- }

在数组定义大小后,在for循环遍历数-组的时候,无论定义容量的大小是多少,变量是什么,用i<(变量的名字).length

让编译器帮你数数组 数组的核心理解;

如下:

int []a=new int[10]; a[0]=5; int [] b=a; System.out.println(a[0]); b[0]=16; System.out.println(a[0]); System.out.println(b[0]);

int [ ]a=new int[10]={ }; a(数组变量)只是这个变量的管理者,里面没有数据,a管着new int[10]的数据。而int a;这些是变量的所有者

a管理一个数组,b也管理一个数组,int[ ]b=a的意识是a将数组的管理权利也给了b,a和b同时管理一个数组。当b改变了数组中的一个值之后,从a那里看,也是改变后的那一个值。如上图所示,a[ 0]改了也等于b[ 0]改了。

如图:

两个相同长度的数组,将数组a拷贝至b,并且逐一核对对应位置的数,如b[ 0 ]是否等于a[ 0 ]

int a[] = {1,2,3,4,5}; int b []=new int [a.length]; for(int i=0;i<b.length;i++) { b[i]=a[i]; } 这里是拷贝a数组 下面是验证a[]和b[]对应位置的数是否相同。 boolean SE =true; for(int i=0;i<b.length;i++) { if(a[i]!=b[i]) { SE=false; break; } } System.out.println(SE);
最新回复(0)