Java_数组

来源:互联网 发布:mac打开appstore好慢 编辑:程序博客网 时间:2024/06/11 12:17

数组

1.数组的概念:数组是一种数据结构,用于存储同一类型的容器。它可以自动给存入的元素从0开始编号,然后通过一个整型下标可以访问数组中的每一个值(核心思想:基于角标)。数组的长度是固定的,一旦创建就不可改变

2.数组的定义:

1)元素类型[ ] 数组变量名 = new 元素类型[数组元素个数或长度]。例如:int[] a = new int[10];
    
2)元素类型[ ] 数组变量名 = new {1,3,5,7,9};//可以直接指定具体数据


3.数组的内存结构:


Java数组是静态的,一旦数组初始化完成,数组元素的内存空间分配结束,程序就只能改变元素的值而无法改变数组的长度。

例如:int [ ] a = new [5];





4.数组常见的问题


1)ArrayIndexOutOfBoundsException:角标越界异常,角标不存在的时候引发的程序异常。

2)NullPointerException:空指针异常,当引用没有任何指向值为null的情况,该引用还在用于操作实体。


5.数组的常见操作:
1.获取数组元素  2.获取数组元素的最值 3.对数组排序(常见的:选择排序,冒泡排序,)4.查找(二分查找,针对有序)

获取数组元素:





获取元素最值:




对数组排序(选择排序,冒泡排序)



查找:二分查找(前题是数组是有序的)




现实开发中我们就不用每个功能都自己定义,Java给我们提供了数组工具类,他包含了我们经常对数组操作的各种方法,例如:
1:排序 Arrays.sort(arr);
2:二分查找: Arrays.binarySearch(arr,key)
如果key在数组中,则返回key的角标,否则返回(-(插入点) - 1)
3:toString:Arrays.to string(arr),返回数组的字符串形式。

利用数组,我们还可以实现一些功能,例如:查表法
我们只要输入数字,就能将数字变成大写打印出来
public static void toChar(String str) {

//定义要查的表
char[] chs = {'零','一','二','三','四','五','六','七','八','九'};

//将字符串转换成字符数组
char[] arr = str.toCharArray();

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

//将单个字符的AScII码值转换成字符串,在用Integer对象的parseInt转换成数字
//这个数字就是要查的数字在表中的角标
int index = Integer.parseInt(new String(new char[]{arr[i]}));

System.out.print(chs[index]);
}



0 0
原创粉丝点击