-
数据类型 [] 数组名称 = new 数据类型 [长度]
-
数据类型 [] 数组名称 = {值,值}
-
数组名称.length 来取得数组长度
public class ArrayDemo01 {
public static void main(String[] args) {
//变量的类型 变量的名字 = 变量的值
int[] nums;//声明一个数组
nums=new int[10];//创建一个数组(动态初始化)
//动态初始化 包含默认初始化
//int[] nums=new int[10];
//给数组中元素赋值
nums[0]=1;
nums[1]=4;
nums[2]=8;
//静态初始化 创建+赋值
int[] a={1,2,3,4};
Man[] mans={ new Man(1,1), new Man(1,3)};//?
}
}
数组的四个基本点
1、其长度是确定的,数组一旦被创建,大小就是不可以改变的 2、其元素必须是相同类型,不允许出现混类型 3、数组中元素可以是任何数据类型,可以是基本数据类型,也可以是引用数据类型 4、数组变量属于引用变量,数组也可以看成是对象,数组中的每个元素可以看成是该对象的成员变 5、数组本身就是对象,数组对象本身就是在堆中。
实例public class ArrayDemo02 {
public static void main(String[] args) {
int[] arr={1,3,4,5,6,7,8,9,10};//定义了一个数组并静态初始化
//遍历数组元素
for (int i = 0; i max){
max=arr[i];
}
}
System.out.println(max);
}
}
增强for循环
-
没有下标
-
适用于打印全部数据
public class ArrayDemo03 {
public static void main(String[] args) {
//int[] arrays=new int[10];
int[] arrrays={1,2,3,4,5,6,7,8,9};
//遍历数组中各元素
for(int array : arrrays){
System.out.println(array);
}
}
}
反转数组
代码分析
public class ArrayDemo04 {
public static void main(String[] args) {
int[] arrays={1,2,3,4,5,6,7,8,9};//创建了一个数组并初始化
int[] reverse=reverse(arrays);//定义了一个反转数组的方法,用reverse接收,将arrays传给形参
printArray(arrays);//定义了一个打印数组的方法,实参是数组
printArray1(reverse);//定义了一个打印反转数组的方法,实参是反转数组
}
//打印数组元素方法
public static void printArray(int[] arrays){
for(int i=0;i
多维数组
-
多维数组,可以看成是数组的数组,比如二维数组就可以看成是一个特殊的一维数组,其每一个元素就是一个一维数组。
public class ArrayDemo05 {
public static void main(String[] args) {
//多重数组 一层一层分析
int[][] array={{1,2},{3,4},{4,5}};
for (int i = 0; i
Arrays类
-
Arrays类 数组的工具类java.util.Arrays 查看JDK帮助文档
-
Arrays中的方法都是static修饰的静态方法,使用时直接使用类名进行调用,而“不用”使用对象来调用(能用对象来调用)
-
常用功能
-
给数组赋值:通过fill方法 对数组排序:通过sort方法 按升序
-
比较数组:通过equals方法比较数组中元素值是否相等
-
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法的操作
-
打印数组:toString方法
代码分析
public class Demo06 { public static void main(String[] args) { int[] arr={1,3,5,4,2,6,7}; System.out.println(Arrays.toString(arr)); Arrays.sort(arr);//排序 String ret=Arrays.toString(arr);//遍历数组 //Arrays.fill(); System.out.println(ret); } }
-
-
两层循环,外层冒泡轮数, 里层依次比较;
-
嵌套循环 时间复杂度为O(n2)
-
比较数组中,两个相邻的元素,如果第一个数比第二个数大,则交换他们的位置
-
每一次比较中,都会产生 一个最大,或者一个最小的数
-
下一轮则可以少一次排序
-
依次循环,直到结束
public class ArrayDemo07 {
public static void main(String[] args) {
int[] array={2,4,7,3,5,8};
System.out.println(Arrays.toString(array));//打印原始数组
int[] ret=sort(array);//调用完我们自己写的排序方法后,返回一个排序后的数组
System.out.println("===========");
System.out.println(Arrays.toString(ret));//打印排序后数组
}
public static int[] sort(int[] array){
//外层循环,用来判断要走多少次
for (int i = 0; i
稀疏数组
-
稀疏数组 当一个数组中大部分元素为0,或者为同一值的数组时,就可以使用稀疏数组来保存
-
处理方式: 记录数组一共有几行几列,有多少个不同值(有效值)
-
把具有不同值的元素和行列及值记录在一个小规模的数组中
行 列 值 有几行 有几列 有多少个值 第一个元素 在第几行 在第几列 值是多少 以 此 类 推
public class ArrayDemo08 {
public static void main(String[] args) {
//1、创建一个二维数组 11*11 0:没有棋子 1:黑棋 2:白棋
int[][] array1=new int[11][11];
array1[1][2]=1;//初始化值
array1[2][3]=2;
//输出原始的数组
System.out.println("原始的数组:");
for (int i = 0; i



