int[] array 和int array[]的区别

对于int[10] array来讲,是先为array分配一个内存地址空间,然后在里面进行内存地址的分配

对于int array[]来讲,是为每一个数组变量分配一个内存地址,

也就是说,对于int[10] array来说,就是先分配一个整的内存地址,然后再里面进行分配,对于int array[10]来说,就是一个变量分配一个内存地址,也就是one to one

数组定义

对于一维数组的定义

  1. int[] array=new int[];

对于数组的赋值

  1. int[] array=new int[]{1,3,6,7};
  2. int[] array1={2,4,6,8}

对于二维数组的定义

  1. int[][] array=new int[][];

对于数组的赋值

  1. int[][] array=new int[][]{{1,4,6},{3,6,8}};

数组的基本操作

1.遍历


用foreach语句进行遍历

  1. int[][] array1=new int[][]{{1,3,4},{2,8,6},{3,6,4}};
  2. for (int i = 0; i <array1.length ; i++) {
  3. for (int j = 0; j <array1[i].length ; j++) {
  4. System.out.print(array1[i][j]);
  5. }
  6. System.out.println();
  1. int[][] array2=new int[][]{{1,3,6,5},{4,6,7,9},{3,5,3,2},{4,2,6,8}};
  2. int i=0;
  3. for (int x[]:array2 //先遍历外层数组,就相当于遍历一位数组
  4. ) {
  5. i++;
  6. int j=0;
  7. for (int e:x //遍历内层数组,遍历每一个数组元素
  8. ) {
  9. j++;
  10. if (i==array2.length&&j==x.length){
  11. System.out.print(e);
  12. }else {
  13. System.out.print(e+"、");
  14. }
  15. }
  16. }

2.填充替换数组元素


fill(int[] a,int value)方法,该方法可将指定的int值分配给int型数组的每个元素
fill(int[] a,int fromIndex,int toIndex,int value)方法,该方法将指定的int值分配给int型数组 指定范围中的每个元素。

  1. int[] array3=new int[6];
  2. Arrays.fill(array3,8);
  3. System.out.println();
  4. for (int j = 0; j <array3.length ; j++) {
  5. System.out.print(array3[j]);
  6. }
  1. int[] array4=new int [6];
  2. Arrays.fill(array4,1,2,3);
  3. System.out.println();
  4. for (int j = 0; j < array4.length; j++) {
  5. System.out.print(array4[j]);
  6. }

3.对数组进行排序


sort(object)方法可对任意类型的数组进行升序排序

  1. int[] array5=new int[]{4,4,3,2,5};
  2. Arrays.sort(array5);
  3. System.out.println();
  4. for (int j = 0; j <array5.length ; j++) {
  5. System.out.print(array5[j]);
  6. }

4. 复制数组


copyOf(arr,int newlength)方法,满足不同类型数组的复制
copyOfRange(arr,int formIndex,int toIndex)方法,可以将指定范围内的数组复制出来

  1. int[] array6=new int[]{4,2,9};
  2. int[] array7=Arrays.copyOf(array6,6);
  3. System.out.println();
  4. for (int j = 0; j <array7.length ; j++) {
  5. System.out.print(array7[j]);
  6. }
  1. int[] array8=new int[]{2,4,5,7,1};
  2. int[] array9=Arrays.copyOfRange(array8,2,4);
  3. System.out.println();
  4. for (int j = 0; j <array9.length ; j++) {
  5. System.out.print(array9[j]);
  6. }

5.数组查询


binarySearch(Object[],Object key)方法,此方法采用二分搜索法来搜索指定数组,来获得指定对象,该方法返回的是要搜索元素的索引值。
binarySearch(Object[],int fromIndex,int toIndex,Object key)此方法在指定的范围内检索某一元素。

  1. int[] array0=new int[]{1,6,93};
  2. Arrays.sort(array0);
  3. int index=Arrays.binarySearch(array0,6);
  4. System.out.println("6的索引是"+index);
  1. int[] zhang=new int[]{8,4,5,3,5};
  2. Arrays.sort(zhang);
  3. int index1=Arrays.binarySearch(zhang,2,4,5);
  4. System.out.println("索引为"+index1);

数组排序算法

1.冒泡算法

  1. public class Bubblesort {
  2. public static void main(String[] args) {
  3. int[] array=new int[]{42,43,64,15,93,53};
  4. Arrays.sort(array);
  5. for (int i = 1; i <array.length ; i++) {
  6. for (int j = 0; j <array.length-i ; j++) {
  7. if (array[j]>array[j+1]){
  8. int temp=array[j];
  9. array[j]=array[j+1];
  10. array[j+1]=temp;
  11. }
  12. }
  13. }
  14. for (int m:array){
  15. System.out.print(">"+m);
  16. }
  17. }
  18. }

2.直接排序算法