day05
foreach:foreach循环是JDK1.5之后引入的,称为增强for循环,比for循环简洁,效率高
语法格式:
for(元素类型 元素名:数组名、集合等)
说明:foreach循环专门设计用来遍历数组、集合等
与for的区别:
(1)foreach循环在遍历显示、查找、统计方面比较常用,不适合用“修改”操作
(2)foreach循环没有下标信息
数组的查找
1,顺序查找:从头到尾挨个遍历
2,二分查找:
前提:数组有大小顺序
数组的排序
冒泡排序:通过相邻元素比较,多轮(n+1)后,实现最终排序
直接选择排序:每一轮找出未排序元素中的最小值,然后和它应该在的位置的元素交换
数组的工具类:java.util.Arrays
此类用来包含操作数组(例如排序和搜索)的各种方法
(1) int binarySearch(int[] a,int key)
a---要搜索的数组
key---要搜索的值
结果:如果key在a中,返回搜索键的索引,否则返回(-(插入点)-1)。插入点:将键插入数组的那一点
(2)int short(int[] a)
对指定的int型数组按数字升序排列
(3)int[] copyOf(int[] original,int newlength)
复制指定数组,截取或用0填充,以便副本具有指定的长度
origin---要复制的数组,原数组
newlength---要返回的副本长度
结果:原数组的副本,截取或用0填充,以获得指定的长度
(4)int[] copfOfRange(int[] original,int from,int to)
original---将要从其复制一个范围的数组,原数组
from---要复制的范围的初始索引(包括)
to---要复制的范围的最后索引(不包括)。(此索引可以用于数组范围之外)
(5)void fill(int[] a,int val)
将指定的int值分配给指定的int型数组的每个元素
a---要填充的数组
val---要存储在数组所有元素的值
(6)String toString(int[] a)
返回指定数组内容的字符串表示形式([a,b,c……])
多维数组
从二维开始,二维数组又称为矩阵
二维数组的声明
元素的数据类型[][] 二维数组名;
二维数组的初始化
1,静态初始化
二维数组名=new 元素的数据类型[][]{{第一行的元素列表},{第二行的元素列表}……};
声明和静态初始化在一行
元素的数据类型[][] 二维数组名=[][]{{第一行的元素列表},{第二行的元素列表}……};
二维数组的遍历
for(int i=0;i<行数;i++){
for(int j=0;j<每一行的列数;j++){
元素:二维数组名[行下标][列下标];
}
}
二维数组名的相关表示方式
行:二维数组名[行下标]
元素:二维数组名[行下标][列下标]
行数:二维数组名.length
每一行的列数:二维数组名[行下标].length
二维数组的动态初始化
1,每一行列数相同,规则的矩阵
二维数组名=new 元素的数据类型[行数][列数];
2,每一行列数不同,不规则的矩阵
(1)确定总行数
二维数组名=new 元素的数据类型[行数][];
(2)依次确定每一行的列数
二维数组名[行]=new 元素的数据类型[l列数];
二维数组为元素赋值
二维数组名[行下标][列下标]=值;