Day05:循环问题 / 数组

循环嵌套

循环结构中包含完整的循环结构。

注意:

循环嵌套不限层次

各种循环语句都可以互相嵌套

内层循环中出现的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(数组名);

数组引用特征

任何数组都时引用数据类型

基本数据类在栈中保存数值

引用数据类型在栈中保存的是引用

所有传递的是引用

其他排序待补充!!! 

 

posted @ 2019-08-06 11:05  大阿毛  阅读(143)  评论(0编辑  收藏  举报