数组详解( 01、什么是数组? 02、数组的声明和创建 03、三种初始化及内存分析 04、下标越界及小结 05、数组的使用 06、二维数组 07、Arrays类讲解 08、冒泡排序 09、稀疏数组)

时间:2021-04-12 12:19:15   收藏:0   阅读:0

01、什么是数组

02、数组的声明和创建

detaType[] arrayRefVar;//首选的方法
detaType  arrayRefVar[];//效果相同不建议使用
dataType[] arrays = new dataaType[arraySize]
arrays.length

 

03、三种初始化及内存分析

04、下标越界及小结

05、数组的使用

public static void main(String[] args) {
       int[] arrays = {1,2,3,4,5,};
       //JDK1.5, 没有下标
       for (int array : arrays) {
           System.out.print(array);
      }
}
public static void main(String[] args) {
       int[] arrays = {1,2,3,4,5,};
       printArray(arrays);
  }
   //打印数组元素
   public static void printArray(int[] arrays){
       for (int i = 0; i < arrays.length; i++) {
           System.out.print(arrays[i] + " ");
      }
  }
public static void main(String[] args) {
       int[] arrays = {1,2,3,4,5,};
       int[] reverse = reverse(arrays);
       printArray(reverse);
  }
   //反转数组元素
   public static int[] reverse(int[] arrays){
       int[] result = new int[arrays.length];
       //反转操作
       for (int i = 0,j=arrays.length-1; i < arrays.length; i++,j--) {
           result[j] = arrays[i];
      }
       return result;
  }

 

06、二维数组


 

07、Arrays类讲解

08、冒泡排序

09、稀疏数组

技术图片

技术图片

 //1.创建一个二维数组  11*11  0:mei 没有旗子    1:黑旗  2. 白棋
       int[][] array1 = new int[11][11];
       array1[1][2] = 1;
       array1[2][3] = 1;
       //输出原始的数组
       System.out.println("输出原始数组");
       for (int[] ints : array1) {
           for (int anInt : ints) {
               System.out.print(anInt+"\t");
          }
           System.out.println();
      }
?
       System.out.println("=========================================================");
       //转换为稀疏数组保存
       //获取有效值的个数
       int sum = 0;
       for (int i = 0; i < 11; i++) {
           for (int j = 0; j < 11; j++) {
               if (array1[i][j]!=0){
                   sum++;
              }
          }
      }
       System.out.println("有效值的个数:"+sum);
       System.out.println("=========================================================");
       //2.遍历一个稀疏数组的数组
       int[][] array2 = new int[sum+1][3];
?
       array2[0][0] = 11;
       array2[0][1] = 11;
       array2[0][2] = sum;
?
       //遍历二维数组,将非0的值,存放稀疏数组中
       int count = 0;
       for (int i = 0; i < array1.length; i++) {
           for (int j = 0; j < array1[1].length; j++) {
               if (array1[i][j]!=0){
                   count++;
                   array2[count][0] = i;
                   array2[count][1] = j;
                   array2[count][2] = j;
              }
          }
      }
       //输出稀疏数组
       System.out.println("稀疏数组");
       for (int i = 0; i < array2.length; i++) {
           System.out.println(array2[i][0]+"\t"
                   +array2[i][1]+"\t"
                   +array2[i][2]+"\t");
      }
       System.out.println("=========================================================");
       System.out.println("还原");
       //读取稀疏数组
       int[][] array3 = new int[array2[0][0]][array2[0][1]];
       //2.给其中的元素还原它的值
       for (int i = 1; i < array2.length; i++) {
           array3[array2[i][0]][array2[i][1]] = array2[i][2];
      }
       //3.打印
       //输出原始的数组
       System.out.println("输出原始数组");
       for (int[] ints : array1) {
           for (int anInt : ints) {
               System.out.print(anInt+"\t");
          }
           System.out.println();
      }
  }
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!