目录
一、数组的概念
1、概念:数组是一组数据的集合表现(简单理解)
2、分类:一维数组、二维数组
二、一维数组
1、创建格式:
数组数据类型[ ]数组名;
数组数据类型 数组名[ ];
例:
int [] ShuZu; //第一种
int ShuZu []; //第二种
2、分配空间格式:
数组名=new 数组数据类型[数组元素的空间];
例:
ShuZu = new int [5];
2、一维数组的创建并同时初始化:
数组数据类型 数组名 = new 数组数据类型[数组空间];
例:
int ShuZu [] = new int [8];
3、初始化一维数组
三、二维数组
1、数组声明:
(1)数组数据类型 [ ] [ ]数组名;
(2)数组数据类型 数组名 [ ] [ ];
例:
int [][] ShuZu;//第一种
int ShuZu [][];//第二种
2.分配二维数组空间
数组名 = new 数据类型[行数][列数];
含义:建立一个x行y列的数组空间。
例:
ShuZu = new int [2][3];
//创建一个两行三列的数组
四、小栗子
例1、
说明:创建一个用来存放12个月份中每个月份的天数数组并调用输出
public class Demo {
public static void main(String[] args) {
int mouth[]=new int []{31,28,31,30,31,30,31,31,30,31,30,31};
for(int i=0;i< mouth.length;i++){
System.out.println((i+1)+"月有"+mouth[i]+"天!"); //使用for循环依次遍历数组
}
}
}
运行结果:
1月有31天!
2月有28天!
3月有31天!
4月有30天!
5月有31天!
6月有30天!
7月有31天!
8月有31天!
9月有30天!
10月有31天!
11月有30天!
12月有31天!
题目来源:《Java从入门到精通(第6版)》
涉及知识:一维数组的基本创建和使用
例2、
说明:输出一个3行4列的所有元素都为0的矩阵
public class Demo {
public static void main(String[] args) {
int [][]x=new int [3][4];
for(int i=0;i<x.length;i++){ //使用for循环依次遍历数组
for(int j=0;j<x[i].length;j++){
System.out.print(x[i][j]);
}
System.out.println();
}
}
}
运行结果:
0000
0000
0000
题目来源:《Java从入门到精通(第6版)》
涉及知识:二维数组的基本创建和输出
注意:二维数组创建好之后有初始值,并且初始值为0.
五、数组的基本操作
(一)数组的填充与替换
1、方法名:fill方法
2、此方法归属于Arrays类,所以调用此方法前需要导入java.util.Arrays类。
3、导入Arrays类的方法:
import java.util.Arrays;
4、分类:全部填充;部分填充(指定位置填充)
(1)全部填充格式:
//fill(需要填充的数组,填充的值)
//代码实现
Arrays.fill(ShuZu,8)
//将ShuZu中所有位置全部填充8
(2)部分填充(指定位置填充)格式:
fill(需要填充的数组,填充的起始位置(包括),填充的最终位置(不包括),需要填充的值);
//代码实现
Arrays(ShuZu,1,2,6);
//将ShuZu中1索引到2索引填充6
5、
例1:将数组中所有位置填充为6
import java.util.Arrays;
public class Shuzu{
public static void main(String[] args) {
int [] arrays = new int[6];
Arrays.fill(arrays,6);
for(int i = 0;i< arrays.length;i++){
System.out.println(arrays[i]);
}
}
}
//运行结果
6
6
6
6
6
6
例2、将数组的1到2索引位置填充8
import java.util.Arrays;
public class Shuzu{
public static void main(String[] args) {
int [] arrays = new int[6];
Arrays.fill(arrays,1,2,8);
for(int i = 0;i< arrays.length;i++){
System.out.println(arrays[i]);
}
}
}
//运行结果
0
8
0
0
0
0
(二)数组的排序
1、方法名:sort方法
2、此方法归属于Arrays类,所以调用此方法前需要导入java.util.Arrays类。
3、导入Arrays类的方法:
import java.util.Arrays;
4、语法格式:
Arrays.sort(需要排序的数组);
5、
例:给指定数组进行排序
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
int [] arrays = new int[]{1,2,3,4,5,2,3,1,6,7};
Arrays.sort(arrays);
for(int i = 0;i< arrays.length;i++){
System.out.println(arrays[i]);
}
}
}
//运行结果
1
1
2
2
3
3
4
5
6
7
(三)数组的复制
1、方法名:copyOf方法
2、此方法归属于Arrays类,所以调用此方法前需要导入java.util.Arrays类。
3、导入Arrays类的方法:
import java.util.Arrays;
4、语法格式:
(1)全部复制
copyOf(需要进行复制的数组,复制后新数组的长度);
(2)部分复制(指定位置复制)
copyOfRange(需要进行复制的数组,起始位置(包括),最终位置(不包括));
5、
例1:复制指定数组(全部复制)
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
int [] arrays = new int[]{1,2,3,4,5,2,3,1,6,7};
int arrays_01 = Arrays.copyOf(arrays,10);
for(int i = 0;i< arrays.length;i++){
System.out.println(arrays_01[i]);
}
}
}
运行结果:
1
2
3
4
5
2
3
1
6
7
例2、复制上边数组的1到3索引(部分复制)
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
int [] arrays = new int[]{1,2,3,4,5,2,3,1,6,7};
int [] arrays_01 = Arrays.copyOfRange(arrays,2,3);
for(int i = 0;i< arrays_01.length;i++){
System.out.println(arrays_01[i]);
}
}
}
//运行结果
3
(四)二分查找法
1、方法名:binarySearch()方法
2、此方法归属于Arrays类,所以调用此方法前需要导入java.util.Arrays类。
3、导入Arrays类的方法:
import java.util.Arrays;
4、注意:该方法返回的是想要查找元素排序后所在位置的索引值
5、语法格式:
binarySearch(元素所在数组,要搜索的值);
6、
例:查找数组中指定数值
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
int [] arrays = new int[]{8,9,7};
Arrays.sort(arrays);
int newarrays=Arrays.binarySearch(arrays,9);
System.out.println("9的位置为:"+newarrays);
}
}
//运行结果:
9的位置为:2
六、总结
1、想要使用数组的以上操作,就必须导入Arrays包,否则无法使用,会出现报错,导入方式在上边的例子中已经说明。
2、这次呢咱就先聊到这里,后续会有更多的关于Java的基础知识供大家一起学习参考,以上内容如果哪里有错误,希望大家可以指出,欢迎大家的评论。
3、此文章若涉及到某些侵权问题,可以随时告诉我,我将立即撤回进行更改,最后谢谢大家的支持!