JavaSE数组

JavaSE数组

目标

数组的基本概念及作用


  • 数组是相同数据类型元素的集合(一个数组中可以存储多个值)
  • 数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,也可以存储引用数据类型,取决于声明数组时,可以存储的数据类型。

数组的创建


  • 数组的声明的两种方式
    •数据类型 [ ] 数组名字 例如: int [ ] a;
    •数据类型 数组的名字 [ ] 例如: int a [ ];

注意:
在Java语言中两种声明方法没有任何区别,但是建议大家用第一种,避免混淆a的数据类型。

  • 数组创建的三种方式:
  • 声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认的初始化值
int[] a = new int[5];//数组创建 必须指定长度
               //System.out.println(a);//[I@1b6d3586默认输出是数组在内存中地址
               System.out.println(Arrays.toString(a));//Arrays.toString(a)将数组中的元素拼接位一个字符串表示

               char[] c = new char[5];
               System.out.println(Arrays.toString(c));

               float[] f = new float[5];
               System.out.println(Arrays.toString(f));

               String[]  s = new String[5];
               System.out.println(Arrays.toString(s));
  • 声明数组并分配内存,同时将其初始化
int [] x = new int[]{1,2,3,4,5,6,7};
System.out.println(Arrays.toString(x));
  • 与前一种方式相同,仅仅只是语法相对简略
int[] y = {1,2,3,4,5,6,7};
System.out.println(Arrays.toString(y));
  • 从另一个角度,数组创建可以分为动态和静态两种

动态创建数组(没有为元素赋值,可以结合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循环
    第二种:增强for循环

//for循环
int[] a = {1,2,3,4,5};
for (int i = 0; i < a.length; i++) {
             System.out.println(a[i]);
           }
/*
增强for循环
a: 需要遍历的数组
int t: 声明一个变量
每循环一次,从数组中取出一个元素,赋给变量t,进入到循环体,重复操作,直到数组中元素遍历完成.
*/
for(int t : a){
              System.out.println(t);
          }

数组排序

  • 冒泡排序
    每次取出相邻的两个元素比较,较大的值向后移动。
    int[ ] a = {5,4,3,2,1};
    5,4,3,2,1
    4 3 2 1 5
    3 2 1 4 5
    2 1 3 4 5
    1 2 3 4 5
int [] b = {45,56,12,32,0};
        for (int i = 0; i < b.length-1; i++) {//控制循环次数
            for (int j = 0; j < b.length-1-i; j++) {//相邻元素比较
                    if(b[j]<b[j+1]){
                        int m = b[j];
                        b[j] = b[j+1];
                        b[j+1] = m;
                }
            }
        }
        System.out.println(Arrays.toString(b));
  • 选择排序
    假设第一个元素最大值,与之后的每一个位置上的元素进行比较,满足条件交换位置。
int [] c = {45,89,13,47,2};
        for(int i = 0;i < c.length-1;i++){//控制循环次数
            for (int j = i+1; j < c.length ; j++) {
                if(c[i]<c[j]){
                    int n = c[i];
                    c[i] = c[j];
                    c[j] = n;
                }
            }
        }
        System.out.println(Arrays.toString(c));
  • debug调试
    1.设置断点 开始调试程序的位置
    2.启动时使用debug模式运行程序
    3.调试按键
    在这里插入图片描述

二维数组


  • 二维数组的定义
    数组的数组-----二维数组的每一个元素是一个一维数组
    例如:

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

  • 二维数组的声明

int [ ] [ ] a;
int a2[ ] [ ];

注意:建议用第一种,不容易混淆a的数据类型

  • 数组创建
int[][]a = new int[3][4];

int[][]b = new int[][]{{101,80,70,60},{102,80,70,60},{103,80,70,60}};

int[][]c = {{101,80,70,60},{102,80,70,60},{103,80,70,60}};
  • int[ ][ ] arr = new int[3][5];
    定义了一个整型的二维数组 ,这个二维数组有3个一维数组,每一个一维数组包含5个元素.

  • 二维数组的迭代

int[][] a = new int[][]{{10010,50,30,90},{10011,70,80,100},{10012,86,89,99}};
//二维数组遍历
        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();

        }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值