创建数组
数组是相同类型数据的有序集合.
- 相同类型的若干个数据,按照一定先后次序排列组合而成。
- 其中,每一个数据称作一个数组元素
- 每个数组元素可以通过一个下标来访问它们.
数组特点:
- 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
- 其元素必须是相同类型,不允许出现混合类型。
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
数组属引用类型
- length, elements of the array
声明数组
声明数组: 告诉计算机数据类型是什么
- 声明一个变量就是在内存空间划出一块合适的空间
- 声明一个数组就是在内存空间划出一串连续的空间
数组概述
- 数组只有一个名称,即标识符
- 元素下标标明了元素在数组中的位置,从0开始
- 数组中的每个元素都可以通过下标来访问
- 数组长度固定不变,避免数组越界
如何使用数组
使用数组四步走:
1、声明数组 :int[ ] a;
2、分配空间 :a = new int[5];
3、赋值 :a [0] = 8;
4、处理数据 a [0] = a[0] * 10;
笔记
数组表示存储相同数据类型数据的有序集合
特点:
1、数组中存放的数据必须是同一个数据类型,可以是基本数据类型,
也可以是引用数据类型
2、数组在定义的时候必须要给定大小,且大小不可以改变
3、可以通过下标值来获取数据,下标从0开始
4、插入数组中的数据是有序集合,此时有序并不是指代大小排序,
而是指插入的顺序
使用:
1、声明数组
2、创建空间
3、赋值
4、数组操作
public class ArrayDemo{
public static void main(String[] args){
/*
//声明数组
int[] array;
//创建内存空间
array = new int[5];
//数组赋值
array[0] = 0;
array[1] = 1;
array[2] = 2;
array[3] = 3;
array[4] = 4;
//数组操作
System.out.println(array[0]);
//数组的几种创建方式
//1、声明并申请空间
int[] arr1 = new int[5];
int [] arr2 = new int[5];
int arr3[] = new int[5];
//2、声明数组并赋值
int[] arr4 = new int[]{1,2,3,4,5};
//3、直接初始化操作
int[] arr5 = {1,2,3};
//获取数组的长度
System.out.println(arr1.length);
//输入5个数值,求平均值
int[] arr6 = new int[]{56,98,34,89,100};
int sum = 0;
for(int i = 0;i<arr6.length;i++){
sum+=arr6[i];
}
System.out.println("平均值是:"+sum/arr6.length);
*/
/*
数组是引用类型,当创建完成数组之后相当于是在方法外定义了一个变量,此时数组中的值是有默认值的
默认是什么,取决于你定义的数组的类型:
int:0
String null
boolean false
数组可以根据下标获取值,但是获取的时候下标的范围是[0,length-1]
*/
int[] array = new int[5];
System.out.println(array[0]);
}
}
数组相当于数据结构的一种实现,很多数据在进行存储的时候需要使用数组
数据结构:
线性表
非线性表
树
图
队列
栈
数组经常会用来考排序算法:
面试需求:
1、写出某种排序算法
冒泡排序
选择排序
插入排序
快速排序
2、排序算法的时间复杂度(空间复杂度)
衡量一个数据结构是否合适的衡量标准
3、排序算法的稳定性
排序之后的值跟排序之前的值位置是否发生变化
二维数组
二维数组可以称作数组的数组,定义二维数组的时候一定需要注意,必须要给定数组的长度
public class TwoArray{
public static void main(String[] args){
int[] arr = new int[6];
int[][] arr2 = new int[3][];
//创建二维数组的对象
arr2[0] = new int[5];
arr2[1] = new int[3];
arr2[2] = new int[4];
//赋值
arr2[0][0] = 1;
arr2[0][1] = 2;
arr2[0][2] = 3;
arr2[0][3] = 4;
arr2[0][4] = 5;
arr2[1][0] = 6;
arr2[1][1] = 7;
arr2[1][2] = 8;
arr2[2][0] = 9;
arr2[2][1] = 10;
arr2[2][2] = 11;
arr2[2][3] = 12;
for(int i = 0;i<arr2.length;i++){
for(int j = 0;j<arr2[i].length;j++){
System.out.print(arr2[i][j]+"\t");
}
System.out.println();
}
}
}
Arrays
该类提供了关于数组操作的API.
- 打印数组----toString方法。
- 比较两个数组是否相同----equals方法。
- 数组排序----sort方法。
- 数组查找----binarySearch 方法
总结
一维数组入门
- 数组的特点:长度固定,连续空间,存储同一种类型数据
- 数组内存分配图
- for-each循环:简单、主要用于遍历操作
一维数组的应用
- 数组优缺点
▪ 优点:按照索引查询效率高
▪ 缺点:添加删除元素效率低;按照内容查询效率低(无序) - 冒泡排序:基本的排序算法,理解排序规则,实现并完善排序代码
- 数组类型做形参
二维数组:
- 实质是每个元素是一维数组的一维数组;