Java一维数组

1、 理解数组

(1)在Java中,数组是用来存储一组相同类型数据的数据结构。

(2)当数组初始化完毕后,Java为数组在内存中分配一段连续的空间,其在内存中开辟的空间也将随之固定,此时数组的长度就不能再发生改变。

(3)即使数组中没有保存任何数据,数组所占据的空间依然存在。

2、 定义数组

在Java中,定义数组的语法有如下两种:

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

或者:

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

--->定义数组时一定要指定数组名和数组类型

--->必须书写“[]”,表示定义了一个数组,而不是一个普通的变量。

--->“[数组长度]”决定连续分配的空间的个数,通过数组的length属性可获取此长度。

--->数组的数据类型用于确定分配的每个空间的大小。

--->数组元素分配的初始值如下

3、 数组元素的表示与赋值

(1)数组元素在数组里顺序排列编号,该编号即元素下标,它标明了元素在数组中的位置。

(2)首元素(第一个元素)的编号规定为0,因此,数组的下标依次为0、1、2、3、4······依次递增,每次增长数是1.

(3)数组中的每个元素都可以通过下标来访问。

获取数组元素的语法格式如下:

数组名[下标值]

4、 数组的初始化

所谓数组的初始化,就是在定义数组的同时一并完成赋值操作。

数组初始化的语法格式如下:

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

或者:

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

注意:第二种初始化数组的方式里new 数据类型[]的[]括号里不能写数组长度。

5、 遍历数组

(1)使用for循环遍历数组

for(int i = 0;i<数组名.length;i++){

System.out.println(数组名[i]);

}

(2)使用增强for循环遍历数组

for(元素类型 变量名:数组名){

System.out.println(变量名);

}

---->增强for循环是JDK1.5之后提供的,用来实现对数组和集合中数据的访问,增强for循环的语法格式如下:

for(元素类型 变量名 : 要循环的数组或集合名){

······

}

-->第一个元素类型是数组或集合中元素的类型。

-->变量名在循环时用来保存每个元素的值。

-->冒号后面是要循环的数组或集合名称。

6、 数组应用

(1)求数组中的最大值/最小值

思路:

1)假设数组中第一个元素(下标为0的元素)为最大值/最小值。

2)然后依次将后面元素和假设的最大值/最小值进行比较。

3)如果后续元素比假设的最大值/最小值大/小的话,就取代假设的最大值/最小值,成为新的最大值/最小值。

4)比较完数组里所有的元素后,获得最大值/最小值。

(2)向数组中添加元素

思路:

1)创建一个比原来数组长度大1的新数组。

2)将原来数组的元素存储在新数组中,按照从前到后的顺序存储。

3)找到插入元素要插入的位置。

4)从插入位置开始到后面的元素依次往后移动一个位置(最后一个元素先移)。

5)插入元素

(3)修改数组中的元素

思路:

1)找到要修改的元素。

2)修改元素。

(4)删除数组中的元素

思路:

1)找到要删除的元素。

2)删除元素。

3)将删除元素后面的元素依次前移,最后位置的元素修改为默认值。

(5)数组冒泡排序

思路:

1)将数组中元素两两比较,大的数(小的数)往后排(往前排)。

2)每一轮将大数(小数)排在最后面(最前面)位置。

3)多轮比较后,得出升序(降序)排列的数组。

代码(升序排序):以int类型的数组arr为例

for(int i = 0;i<arr.length-1;i++){

for(int j = 0;j<arr.length-1-i;j++){

if(arr[j]>arr[j+1]){

int temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}

}

}

7、 常见问题

1、数组下标越界异常:ArrayIndexOutOfBoundsException

数组下标从0开始,而不是从1开始。

如果访问数组元素时指定的下标小于0或者大于等于数组的长度,都将出现下标越界异常。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值