Java SE 数组

一、数组

1.概念:数组是相同数据类型元素的集合。

数组内部可以划分为多个空间,且这些空间是连续的,一旦空间数量确定,就不能更改。数组是一个非常重要的数据结构。

2.java中数组本身是引用数据类型,即对象(与前面讲道德基本类型与区别)。但是数组可以存储基本数据类型, 也可以存储引用数据类型,取决于声明数组时,可以存储的数据类型。

二、数组的创建

1.数组的声明的两种方式:

• 数据类型 [] 数组名字 例如:int [] a;

• 数据类型 数组的名字 [] 例如:int a [];

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

//int x,y,z;

int a,d[ ];//a是整数,d是数组

int [ ] b,c;//b,c都表示数组

2.数组创建的不同方法:(必须指定长度)

①.声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认的初始化值

int[] ary0 = new int[10];

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

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

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

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

3.从另一个角度,数组创建可以分为动态和静态两种

• 动态创建数组(没有为元素赋值,可以结合for循环进行赋值)

char[] chAry = new char[10];

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

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

三、数组的访问与迭代

1.数组元素访问:数组名字[索引] 例如:a[0],a[1];

数组在创建之初,会给每个空间分配编号(索引/下标)

通过编号可以对某个空间进行访问。

索引(编号)特点:

整型(int)

从0开始

最大的索引 数组长度-1

//Arrays.toString(a)将数组中的元素拼接为一个字符串表示

//出现了运行时异常 数组索引越界异常(异常类型)
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:5(异常原因)
                 at day1.Demo2.main(Demo2.java:26)(界常位置)

2.数组迭代的两种方式:

第一种:

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,进入到循环体,直到数组中的元素遍历完成。

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

for(数组元素的类型 临时变量名字 :数组的名字){

System.out.println(临时变量名字 );

}

例如:

for(int t :a){

System.out.println(t)};

四、数组排序

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

public static void main(String[] args){
    int[] a = {5,4,3,2,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 t =a[j];
                a[j]=a[j+1];
                a[j+1] = t;
          }
       }
    }
     System.out.println(Arrays.toString(a));
}

2.选择排序:假设第一个元素最大值,与之后的每一个位置上的元素进行比较,满足条件交换位置。

int[] a = {5,4,3,2,1};
//i=0
for(int i = 0;i<a.lengeth-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));
 }
}

Debug调试

1.设置断点,开始调试程序的位置

2.启动时使用debug模式运行程序

3.调试按键

五、二维数组

1.定义:数组的数组,二维数组的每一个元素是一个一维数

组。

2.声明语法:

int [][] a;

int a2[][];

3.数组创建:

int [][]a = new int[][]{{1,2,3},{1,2,3},{1,2,3}};
int [] [] b = {{1,2,3},{1,2,3},{1,2,3}};
int [][] c = new int[3][5];
4.二维数组遍历:
int[][]x = new int[][]{{101,80,50,60},{102,80,70,60},{103,40,70,60}};
//二维数组遍历
   for(int i =0;i<x.length;i++){
      for(int j = 0;j<x[i].length;j++){
          System.out.print(x[i][j]+" ");
      }
      System.out.println();
    }
  }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值