Java 数组
数组

第一个循环是给每个数组赋值
然后遍历输出
一维数组
冒泡排序

-
1、声明: int a[]; int []b; 2、初始化: 动态初始化:1、a=new int[2]; int[0]=1;... 动态初始化:2、b=new b[]{3,4}; 静态初始化:int [] c={5,6}; 3、数组常用的方法: 排序:Array.sort(); 查找:Array.binarySearch(); 打印:Array.toString(); 复制:Array.copyof(); 4、常用操作 1、冒泡排序 for(int i=0;i<a.length-1;i++){//控制外循环的次数 for(int j=0;j<a.length-1-i;j++){//控制内循环次数,比外循环少一次,与下一个比较 if(a[j]>a[j+1]){ int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } 2、选择排序 for (int i = 0; i < a.length-1; i++) { int k=i; for (int j = i; j < a.length-1; j++) { if (a[k]>a[j+1]) { k=j+1; } } if(i!=k){ int temp=a[i]; a[i]=a[k]; a[k]=temp; } } 3、顺序查找 public static int find(int []b,int a){ for (int i = 0; i < b.length; i++) { if (a==b[i]) { return i; } } return -1; } 4、二分查找 public static int find(int b[],int a){ int max=b.length-1; int min=0; for (int i = 0; i < b.length; i++) { int midle=(max+min)/2; if(a==b[midle]){ return midle; }else if(a>b[midle]){ min=midle+1; }else if(a<b[midle]){ max=midle-1; } } return -1; }
二维数组
1. 先行后列
2. public class C1 {
public static void main(String[] args) {
System.out.println("Hello");
int[][] a = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
System.out.println(a[0][2]);
for (int i = 0; i < a.length; i++) { //行
for (int j = 0; j < a[i].length; j++) { //列
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
}
3. 赋值
4.
public class C2 {
```java
public static void main(String[] args) {
int sum=0;
Scanner input=new Scanner(System.in);
int[][] a = new int[3][2];
//a[0][0]=98;
//a[0][1]=89;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.err.print("请输入a["+i+"]["+j+"]=");
a[i][j]=input.nextInt();
}
}
for (int i = 0; i < a.length; i++) { //行
for (int j = 0; j < a[i].length; j++) { //列
sum+=a[i][j];
}
}
System.out.println(sum);
}
}
-
当访问的数组下标超过数组最大下标值是,会报错java.lang.ArrayIndexOutOfBoundsException: 下标越界
-
静态初始化: 创建+赋值
int[] a = {1,2,3,4,5,6};



For-Each循环

数组作方法入参

数组作返回值

应用




浙公网安备 33010602011771号