一、数组的基本概念
1.什么是数组
- 定义:是一个变量,存储相同数据类型的一组数据的集合。
- 数组结构与基本要素:标识符、数组元素、元素下标、元素类型
- 内存分配:创建数组时,java会在内存中分配一段连续的存储空间来存放数组元素内容。
- 元素索引:为数组下标,从0开始到数组元素n-1个结束;索引表示数组元素分配的所在位置。
2.数组的创建与初始化
- 数组的创建:
//声明数组:数据类型[]变量名; or 数据类型 变量名[];
int []arr;
int arr[];
//分配数组内存大小:变量名 = new 数据类型[内存大小];
arr=new int[n]; // n为大于1的整数
//赋值:变量名[下标] = 值;
arr[0] = 1;
arr[1] = 2;
//数组元素的使用:变量名[下标]
arr[i] //i为数组的索引,是一个大于0的整数
//创建数组:1. 数据类型[] 变量名 = new 数据类型[内存大小];
int [] arr = new arr[n];
//2. 数据类型[] 变量名 = { 元素1,元素2 ,元素3 };
int [] arr = {1,2,3};
3.数组的使用
- 输出数组中指定元素:
int arr[]={1,2,3,4,5};
//打印出数组中的2
System.out.print(arr[1]);//利用下标获取数组内的指定内容
- 数组的遍历:
//遍历数组
//1.先创建一个数组
int arr[]={1,2,3,4,5};
//2.利用for循环语句遍历arr数组
for(int i=0;i<arr.length;i++){
//依次输出arr数组中的内容
System.out.println(arr[i]);//依次输出arr[0~4]
}
//利用foreach语句遍历arr数组
for(int x : arr){
System.out.println(x);
}
二、二维数组
1.定义:就是一个集合中存放的每一个元素都是 一个一维数组,本质是数组中放数组。
//数据类型[][] 变量名 = new 数据类型[cols][rows];
int[][] arr = new int[i][j];// i 表示行数,j表示列数
//数据类型[][] 变量名 = { {},{},{} };
int[][] arr={{1,2,3},{4,5},{6,7,8}};
2.二维数组的遍历
//创建一个二维数组
int[][] arr1 = { {1,2,3},{4,5,6} };
//嵌套for循环遍历
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr1[i].length; j++) {
System.out.print(arr1[i][j] + "\t");//输出二维数组中的具体元素内容
}
System.out.println();//换行
}
三、数组的常用方法
Java中的Arrays工具类包括了数组常用的一些方法,比如数组的排序,数组的拷贝等方法,而这些方法,在我们的日常生活中也是经常使用的。在使用之前需要导入包
import java.util.Arrays;或者 import java.util.*;
1.Arrays.toString方法
含义:将一组数组转化成字符串
public static String toString(int[] a);
参数
a :
要返回其字符串表示形式的数组
public static void main(String[] args) {
int[] array = new int[] { 1,2,3,4 };
System.out.println(Arrays.toString(array));//[1,2,3,4]
}
2.Arrays.copyOf方法
含义:将指定长度数组的内容复制到新数组中
public static int[] copyOf(int[] original, int newLength) ;
参数
original
: 要复制的数组
newLength
: 要返回的副本的长度
public static void main(String[] args) {
int[] array = new int[] { 1,2,3,4 };
int[] ret = Arrays.copyOf(array,2);
System.out.println(Arrays.toString(ret));//将[1,2]粘贴在list中
}
3.Arrays.copyOfRange方法
含义:将指定范围数组的内容复制到新数组中
public static int[] copyOfRange(int[] original, int from, int to);
参数:
original : 要从中复制范围的数组
from : 要复制的范围的初始索引(包括)
to : 要复制的范围的最终索引,除了它本身。 (该索引可能位于数组之外)
public static void main(String[] args) {
int[] array = new int[] { 1,2,3,4 };
//2表示array数组中的第两个元素到第四个之间的元素
int[] list = Arrays.copyOfRange(array,2,4);
//表示list数组中粘贴[3,4]元素内容
System.out.println(Arrays.toString(list));
}
4.Arrays.sort方法
含义:将数组的元素内容升序排序
public static void sort(int[] a);
public static void main(String[] args) {
int[] array = new int[] { 4,3,2,1 };
Arrays.sort(array);
System.out.println(Arrays.toString(array));//[1,2,3,4]
}