目录
一.一维数组
1.创建一维数组
2.初始化一维数组
3.使用一维数组
二.二维数组
1.创建二维数组
2.初始化二维数组
3.使用二维数组
三.foreach语句
四.遍历数组
五.填充替换数组元素
六.数组排序
七.复制数组
八.查询数组元素(先排序后查询)
九.冒泡排序
十.直接选择排序
十一.反转排序
一.一维数组
1.创建一维数组
(1)先声明,再用new关键字进行内存分配
声明方式:数组元素类型 数组名字[ ];
数组元素类型 [] 数组名字;
例:int[ ] a;(更常用) char b[ ];
声明数组后,还不能立即访问它的任何元素,因为声明数组只是给出了数组名字和元素的数据类型,要想真正使用数组,还要为它分配内存空间。在为数组分配内存空间时必须指明数组的长度。语法格式:数组名字=new 数组元素的类型[数组元素的个数];
数组名字:被连接到数组变量的名称。
数组元素的个数:指定数组中变量的个数,即数组的长度。
例:arr=new int[5];
(2)声明的同时为数组分配内存
语法:数组元素的类型 数组名=new 数组元素的类型[数组元素的个数];
例:int month[ ]=new int[12];
2.初始化一维数组
数组初始化的两种方式:int arr[]=new int[]{1,2,3,5,25};
int arr2[]={34,23,12,6};
3.使用一维数组
【例5.1】使用一维数组输出1~12月每个月份的天数
代码:
结果:
二.二维数组
1.创建二维数组
(1)先声明,再用new关键字进行内存分配
语法:数组元素的类型 数组名字[ ][ ];
数组元素的类型[ ] [ ] 数组名字;
声明二维数组: 例:int a[][];
内存分配:第一种内存分配方式是直接为每一维分配内存空间
代码:a=new int[2][4];
第二种内存分配方式是分别为每一维分配内存
代码:a=new int[2][];
a[0]=new int[2];
a[1]=new int[3];
(2)声明的同时为数组分配内存
例:int a=new int[2][4];
2.初始化二维数组
语法:type arrayname[][]={value1,value2,...,valuen};
type:数组数据类型。
arrayname:数组名称,一个合法的标识符。
value:二维数组中的各元素,都代表一个一维数组。
初始化二维数组代码例:int myarr[][]={{12,0},{45,10}};
3.使用二维数组
【例5.2】输出一个3行4列且所有元素都为0的矩阵
代码:
结果:
三.foreach语句
foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本。
语法:for(元素类型 x:遍历对象obj)}
引用了x的java语句;
}
【例4.8】使用foreach语句遍历整型数组
代码:
结果:
四.遍历数组
遍历数组就是获取数组中的每个元素。通常遍历数组都是使用for循环来实现。
遍历二维数组需使用双层for循环,通过数组的length属性可获得数组的长度。
【例5.3】呈梯形输出二维数组中的元素
代码:
结果:
在遍历数组时,使用foreach语句可能会更简单。
【例5.4】使用foreach语句遍历二维数组
代码:
结果:
五.填充替换数组元素
替换数组元素:Arrays.fill(数组名,值);
替换数组部分元素(前改后不改):Arrays.fill(数组名,前索引,后索引,值);
【例5.5】使用fill()方法填充数组元素
代码:
结果:
【例5.6】使用fill()方法替换数组中的元素
代码:
结果:
六.数组排序
Arrays.sort(数组名);
【例5.7】使用sort()方法将数组排序后输出
代码:
结果:
七.复制数组
复制数组元素(空位补0溢出去掉):新数组名=Arrays.copyOf(旧数组名,新数组长度);
复制数组部分元素(前有后没有):新数组名=Arrays.copyOfRange(旧数组名,前索引,后索引);
【例5.8】复制数组
代码:
结果:
【例5.9】按照索引复制数组
代码:
结果:
八.查询数组元素(先排序后查询)
索引=Arrays.binarySearch(数组名,元素);
索引=Arrays.binarySearch(数组名,前索引,后索引,元素);(前含后不含)
【例5.10】查找元素在数组中的索引位置
代码:
结果:
【例5.11】在指定范围内查找元素在数组中的索引位置
代码:
结果:
九.冒泡排序
基本思想:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把较大的元素移动到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底层上升到顶部。
【例5.12】冒泡排序
代码:
结果:
十.直接选择排序
基本思想:将指定排序位置元素与其他数组元素分别对比,如果满足条件就交换元素值。注意这里与冒泡排序的区别,不是交换相邻元素,而是把满足条件的元素与指定的排序位置元素交换(如从最后一个元素开始排序),这样排序好的位置逐渐扩大,直至整个数组都变成已排序好的格式。
【例5.13】直接选择排序
代码:
结果:
十一.反转排序
基本思想:把数组最后一个元素与第一个元素替换,倒数第二个元素与第二个元素替换,以此类推,直到把所有数组元素反转替换。
【例5.14】反转排序
代码:
结果:
文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览108638 人正在系统学习中