java基础(第五天)----数组1

引入

记录10个人的年龄

     一艘定义10个变量

记录100个人发的年龄

作用

记录一组数据类型相同的数据

特点:长度不可变

名词

长度:数组中可最大存储元素的个数

元素:数组中存储的单个值

下标(索引):元素在数组中的位置,从0开始,到长度-1结束

步骤

声明

语法:

     数据类型[]   数组名;

  数组名就是数组的变量名

如:

int[] ages;

string[]  names;

创建

1.动态创建

        特点:声明可以与创建分开

语法:

      不带值

           数组名=new 数据类型[长度]

     带值

          数组名=new 数据类型[]{值1,值2...值n};

 注意:创建时值的个数就是数组的长度.

    声明并创建

      不带值

          数据类型[]  数组名=new 数据类型[长度];

   带值

       数据类型[]   数组名=new  数据类型[]{值1,值2....值n};

2.静态创建

特点:必须在声明时创建

语法:

 数据类型[]  数组名={值1,值2...值n};

3.动态创建与静态创建的区别

1.使用的区别:动态创建可以初始化也可以修改,静态创建只能初始化时适用

2.内存的区别:

     new关键字:

        含义:新建

          作用:在堆内开辟一片空间

 静态创建在常量池中存储

动态创建在堆内存中存储

3.静态创建没有默认值,动态有默认值,基本数据类型默认为0,引用数据类型默认为null;

操作

  修改数组中指定位置的元素

        语法:数组名[下标]=值;

  修改整个数组

   语法:动态创建的语法

  数组名=new 数据类型[长度]

   查询数组中指定位置的元素

   数组名[下标]

   数组长度:数组名.length;

常见的错误:

  数组下标越界异常

空指针异常

解决方案:保证不要使用null调用属性或方法.

 

使用

遍历

概念:将数组中或集合中的数据,逐个取出.

步骤:

  1.开启循环,变量的取值范围就是下标的取值范围

  2.在循环中通过变量获取数组中对应的值

增强for循环(foreach)

   作用:遍历

  语法:

  for(数据类型  变量名:要遍历的集合或数据){

循环体

}

执行流程:

1.取出数组或集合中第0个元素,赋值给变量名

2.执行循环体

3.取出数组或集合中第1个元素,赋值给变量名

4.执行循环体

5.取出数组或集合中第2个元素,赋值给变量名

6.执行循环体

...

取出数组或集合中最后一个元素,赋值给变量名

执行循环体

结束循环

foreach比for快3倍

查找

概念:寻找数组是否存在指定元素.

步骤:

  1.遍历

  2.使用获取的元素与指定元素对比,如果没有找到,继续寻找,如果找到了结束遍历.

复制

概念:将数组A中的内容复制到数组B中.

要求:数组B的长度要等于数组A;

      数组B的数据类型要与数组A一致;

思想;

   1.遍历数组A

  2.将取出的元素赋值给B数组相对应的位置

扩容

概念:将数组A的长度变大

思路:

  1.创建数组B,要求数组B长度大于数组A;并且与数组A数据类型一致;

  2.将数组A的数据复制到数组B中

  3.将数组B赋值给数组A

   数组在参数中使用

形参

如:

  public static void add03(int[]  nums){

}

实参

如:

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

add03(nums01);

返回值

如:

public static  int[]  add04 (int num01,int num02){

int[] nums=new int[3];

nums[0]=num01;

nums[1]=num02;

nums[2]=num01+num02;

return nums;

}

可变参数

是什么?
  形参中使用数组的变形

好处:
  传递参数时,可以传递数组,也可以多个值

语法:

  数据类型...变量名

注意:

 只能在形参末尾使用,一个方法只能使用一个可变参数.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值