Java基础篇4——数组
1、数组的概念
- 当需要在Java程序中记录单个数据内容时,则声明一个变量即可
- 当需要在Java程序中记录多个类型相同的数据内容时,则声明一个一维数 组即可,一维数组本质上就是在内存空间中申请一段连续的存储单元
- 数组是相同数据类型的多个元素的容器,元素按线性顺序排列,在Java语 言中体现为一种引用数据类型
2、一维数组的声明
2.1、一维数组的声明
数据类型[] 数组名称 = new 数据类型[数组的长度];
数据类型[] 数组名称 = {初始值1, 初始值2, ...};
2.2、数组的方法
//长度
数组.length
//访问元素
数组[下标]
2.3、数组的优缺点
- 可以直接通过下标(或索引)的方式访问指定位置的元素,速度很快
- 数组要求所有元素的类型相同
- 数组要求内存空间连续,并且长度一旦确定就不能修改
- 增加和删除元素时可能移动大量元素,效率低
3、java.util.Arrays
3.1、数组复制
与System.arraycopy数组复制类似,但无需事先准备数组
import java.util.Arrays;public class Test1 {public static void main(String[] args) {copyofrange();}public static void copyofrange(){int a[] = new int[] { 20,25,15,5416,464 };int[] b = Arrays.copyOfRange(a, 0, a.length);for (int i = 0; i < b.length; i++) {System.out.print(b[i] + " ");}}
}
3.2、转换为字符串
public class Test1 {public static void main(String[] args) {tostring();}public static void tostring(){int a[] = new int[] { 20,25,15,5416,464 };System.out.println(Arrays.toString(a));}
}
3.3、排序
public class Test1 {public static void main(String[] args) {sort();}public static void sort(){int a[] = new int[] { 20,25,15,5416,464 };Arrays.sort(a);System.out.println(Arrays.toString(a));}
}
3.4、搜索
使用binarySearch之前,必须先使用sort进行排序
public class Test1 {public static void main(String[] args) {search();}public static void search(){int a[] = new int[] { 20,25,15,5416,464 };Arrays.sort(a);System.out.println(Arrays.toString(a));System.out.println(Arrays.binarySearch(a, 464));}
}
3.5、判断是否相同
public class Test1 {public static void main(String[] args) {equal();}public static void equal(){int a[] = new int[] { 20,25,15,5416,464 };int b[] = new int[] { 20,25,15,5416,465 };System.out.println(Arrays.equals(a,b));}
}
3.6、填充
public class Test1 {public static void main(String[] args) {fill();}public static void fill(){int a[] = new int[] { 20,25,15,5416,464 };Arrays.fill(a,10);System.out.println(Arrays.toString(a));}
}
4、二维数组
二维数组本质上就是由多个一维数组摞在一起组成的数组,二维数组中 的每个元素都是一维数组,而一维数组中的每个元素才是数据内容
4.1、二维数组初始化
数据类型[][] 数组名称 = new 数据类型[行数][列数];
数据类型[][] 数组名称 = {{元素1, 元素2,...}, ...};