JAVA基础篇3

数组

数组的基本概念及作用

数组是相同数据类型元素的集合
数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,
也可以存储引用数据类型。

数组的创建

●数组的声明的两种方式:
• 数据类型 [] 数组名字 例如:int [] a;
• 数据类型 数组的名字 [] 例如: int a [];
• 注意:
• 在Java语言中两种声明方法没有任何区别,但是建议大家用第一种,
避免混淆a的数据类型。
● 数组创建的三种方式:
● 声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认
的初始化值

int[] ary0 = new int[10];

● 声明数组并分配内存,同时将其初始化

int[] ary1 = new int[]{1, 2, 3, 4, 5};

● 与前一种方式相同,仅仅只是语法相对简略

int[] ary2 = {1, 2, 3, 4, 5};

● 从另一个角度,数组创建可以分为动态和静态两种
• 动态创建数组(没有为元素赋值,可以结合for循环进行赋值)

char[] chAry = new char[10];

• 静态创建数组,在创建的时候,即为每个元素赋初值

int[] ary1 = new int[]{1, 2, 3, 4, 5};

● 数组的长度:length属性

int [] b1 = new int []{1,2,3,4,5,6,7};
System.out.println(b1.length);

数组的访问与迭代

数组元素的访问:
• 数组名字[索引] 例如:a[0],a[1];
• 注意:
• 数组的索引从0开始。
• 索引的数据类型是整型
• 索引最大值和数组长度始终差1
数组迭代的两种方式:
第一种:for循环

int [] b1 = new int []{1,2,3,4,5,6,7};

数组的迭代

for(int i =0;i<b1.length;i++){
System.out.println(b1[i]);
}

数组迭代的两种方式:
第二种:增强for循环

int [] b1 = new int []{1,2,3,4,5,6,7};
for(数组元素的类型 临时变量名字 :数组的名字){
System.out.println(临时变量名字 );
}

即:

for(int x:b1){
System.out.println(x);
}

数组排序

● 冒泡排序

import java.util.Arrays;

public class Sort1 {

     /*
        冒泡排序:
            每次取出相邻的两个元素进行比较,将较大的向后移动,
            每一趟找到了一个最大值放到最后
                    int t = 5
            int[] a = {5,4,3,2,1}
                       4 3 2 1 5 第一趟 最大值 5 移动到最右边
                       3 2 1 4 5 第二趟
                       2 1 3 4 5 第三趟
                       1 2 3 4 5 第四趟
                      比较4趟  每一趟取出相邻的两个元素进行比较
      */
    public static void main(String[] args) {
           int[] a = {5,4,3,2,1};
           for(int i=0;i<a.length-1;i++){ //循环4趟
               for(int j=0;j<a.length-1-i;j++){
                   if(a[j]>a[j+1]){
                       int t = a[j];
                       a[j] = a[j+1];
                       a[j+1] = t;
                   }
               }
           }
        System.out.println(Arrays.toString(a));
    }
}

● 选择排序

import java.util.Arrays;

public class Sort2 {

     /*
        选择排序
          假设从第一个元素开始 与 后面的每一个元素进行比较,
          如果后面的元素大于第一个元素,交换两者的位置
          3 1 2 5 4
          1 3 2 5 4
          1 2 3 5 4
          1 2 3 5 4
          1 2 3 4 5
      */
     public static void main(String[] args) {
          int[]  a = {3,1,2,4,5};
         for (int i = 0; i < a.length-1; i++) {
              for(int j=i+1;j<a.length;j++){
                  if(a[i]>a[j]){
                      int t = a[i];
                      a[i] = a[j];
                      a[j] = t;
                    //问题: 每次发现了一个较小的元素,就把它进行交换,交换的次数比较频繁
                    // 每次记录下较小元素的位置(索引),直到内存循环结束后,再进行交换
                  }
              }
         }
         System.out.println(Arrays.toString(a));
     }
}

二维数组

●二维数组的迭代:

int [][] b1 = new int [][]{{1,2},{3,4}};
for(int i =0;i<b1.length;i++){
for(int j =0;j<b1[i].length;j++){
System.out.print(b1[i][j]);
}
}
public class Demo4 {

     /*
         int []a  = {1,2,3,45};
         二维数据(多维数组): 数组中的每一个元素又是一个一维数组

        声明
           int[][] a;
           int a[][];

      */

    public static void main(String[] args) {
        /*
           new int[3][4]; [3]表示二维数组的长度是3(3个一维数组),[4]二维数组中一维数组的长度是4
            {{0,0,0,0},{0,0,0,0},{0,0,0,0}}
              0 1 2 3   0 1 2 3   0 1 2 3
                 0         1         2
         */
         /*int [][] a = new int[3][4];
         System.out.println(a.length);//获取的是二维数组的长度
        System.out.println(a[1][2]);*/

        /*
           [3]表示二维数组长度是3,[]一维数组长度为空,表示在创建二维数组时,不会创建一维数组
            {null,nul,null}
         */
         /* int [][] a = new int[3][];
          System.out.println(a.length);
          int [] b = {1,2,3,4,5};
          int [] c = {1,2,3,4};
          int [] d = {1,2,3,4,5,6};
          a[0] = b;
          a[1] = c;
          a[2] = d;
          System.out.println(a[1][2]);
*/

           int[][] a = new int[][]{{1,2,3,4},{1,2,3,4},{1,2,3,4}};

           int[][] b = {{1,2,3,4},
                        {1,2,3,4},
                        {1,2,3,4}};

            a[1][2] = 33;
            System.out.println(a[1][2]);

    }
}
public class Demo5 {

     /*
         int []a  = {1,2,3,45};
         二维数据(多维数组): 数组中的每一个元素又是一个一维数组
        声明
           int[][] a;
           int a[][];

      */
    public static void main(String[] args) {

           int[][] a = new int[][]{{1,2,3,4},
                                   {1,2,3,4},
                                   {1,2,3,4}};
           /*
                 二维数组遍历
                   使用双层循环
            */
        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();
        }


    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值