循环嵌套
循环结构中包含完整的循环结构。
注意:
循环嵌套不限层次
各种循环语句都可以互相嵌套
内层循环中出现的break和continue只作用在内层循环中
外层循环循环一次
内层循环循环一遍
Java 数组
一个能够保存多个相同数据的变量组成。
为什么需要数组?
程序中如果需要保存很多数据时
定义多个变量不好管理
使用数组方便管理
数组组成
变量名就是数组名
保存的数据叫数组元素
数组能够存放的数据数量叫长度
数组中数据的编号叫下标
数组特性
数组中的数据类型相同
数组长度固定不变
数组的元素都有默认值
数组声明
类型 [] 数组名
int []arr;
int arr[];
double[] nums;
数组初始化
int[] arr; arr=new int[长度]; //和二为一 int[] arr=new int[5];
数组元素赋值
利用数组元素的下标访问数组元素
arr[2]=10; //对arr数组下标为2的元素赋值为10
数组元素取值
System.out.println(arr[0]); arr[2]=6; arr[3]=7; arr[4]=arr[2]+arr[3];
数组遍历
将数组中的所有元素都访问一遍
实现:
使用循环结构来遍历数组
使用for循环
数组长度
数组名.length来表示数组的长度
int[] nums=new int[4];
System.out.println(nums.length);
数组声明后直接赋值
1:声明直接赋值
int nums={7,6,3,9,9,4,2}; //右侧是{} //==左边必须是声明
2:先声明后赋值
int[] nums; nums=new int[]{7,6,3,8,9,4,2} //==左侧不是声明 //右侧必须要直接赋值 //new 类型名[]{}; //[]必须空着
数组操作
数组对比
Arrays.equals(数组1,数组2);
数组相等的条件:
数组元素个数必须相等
对应位置的元素相等
数组填充
Arrays.fill(数组,填充的值);
数组查找
在进行查找前,必须对数组进行排序
1:没有指定范围查找
binarySearch(要找的数组,要找的值);
2:指定范围查找
binarySearch(查找的数组,开始索引,结束索引,要找的元素);
数组复制
Arraays.copyOf(复制数组名,新数组长度); //从原数组第一个元素进行复制
注意:
目标数组如果已存在,将不会被重构
Arrays.arraycopy和copyOf
arraycopy
功能强大,使用灵活
参数多,容易发生异常
需要较复杂的数组复制时使用
copyOf
参数少,没异常
功能有限,需要import
需要普通数组的数组扩容,缩容时使用
数组排序
生序:从小到大
降序:从大到小
sort()
Arrays.sort(数组名);
数组引用特征
任何数组都时引用数据类型
基本数据类在栈中保存数值
引用数据类型在栈中保存的是引用
所有传递的是引用