1. 数组
1.1 数组的定义格式
-
格式一:数据类型 [] 变量名
-
范例: int[] arr
-
定义了一个int类型的数组,数组名为arr
-
推荐格式一
-
格式二: 数据类型 变量名 []
-
范例: int arr[]
-
定义了一个int类型的变量,变量名是arr数组
dataType [] arrayRefVar; // 首选的方法
dataType arrayRefVar[]; // 效果相同,但不是首选方法
int [] arr = new int[3];
/*
左边:
int :数组元素类型
[]:这是一个数组
arr:数组名称
右边:
new:为数组申请内存空间
int:元素类型
[]:数组
3:数组长度
1.2 内存分配
- 当多个数组只想同一个内存的时候任何一个数组修改了堆内存的值,另一个数组访问的时候它的元素值也是发生了改变的。
//数组静态初始化
int [] arr = {1,2,1};
案例1: 数组元素求和
public class SumArr {
public static void main(String[] args) {
int [] a = {
68,27,95,88,171,996,51,210};
Sum(a);
}
public static void Sum(int[]a){
int sum = 0;
for (int x = 0;x<a.length;x++){
if(a[x]%10!=7 && a[x]/10%10!=7 && a[x]%2==0){
sum +=a[x];
}
}
System.out.println(sum);
}
}
案例2: 数组内容相同
public class SameArr {
public static void main(String[] args) {
int []a = {
11,22,33,44,55};
int []b = {
11,22,33,44,55};
boolean c = Same(a,b);
System.out.println(c);
}
public static boolean Same(int[]a,int[]b){
if (a.length!=b.length){
return false;
}
for(int x=0;x<a.length;x++){
if(a[x]!=b[x]){
return false;
}
}
return true;
}
}
案例3: 反转
public class Inversion_array {
public static void main(String[] args) {
int []a = {
19,28,37,46,50};
Inversion(a);
}
public static void Inversion(int []a){
for (int start = 0,end=a.length-1;start<=end;start++,end--){
//变量交换
int temp = a[start];
a[start] =a[end];
a[end] =temp;
}
System.out.print("[");
for(int i =0;i<a.length;i++){
if (i==a.length-1){
System.out.print(a[i]);
}else{
System.out.print(a[i]+",");
}
}
System.out.print("]");
}
}
案例: 循环嵌套
public class MaiJiDemo {
public static void main(String[] args) {
//第一层循环,用于表示鸡翁的范围,初始化表达式变量定义为x=0,判断条件x<=20
for(int x = 0;x<=20;x++){
for(int y=0;y<=33;y++){
int z=100-x-y;
if (z%3==0 && 5*x+3*y+z/3==100){
System.out.println(x+","+y+","+z);
}
}
}
}
}