java数组
java数组分为一维数组和多维数组
一维数组:
数组的概念与定义
数组的内存结构分配及特点
数组的常见问题
数组的常见操作
数组的概念
- 数组就是同一种数据的集合(可以理解为一个容器)
- 数组的好处:程序会自动给数组中的元素分配从0开始的下标,方便操作
数组的定义
定义数组的基本语法格式 如下:
格式一: 元素类型[] 数组名=new 元素类型[数组长度];
int[] a=new int[3];
a[0]=10;
a[1]=15;
a[2]=20;
格式二:元素类型[] 数组名=new 元素类型[]{元素,元素,……};
int[] a=new int[]{1,5,9};
int[] a={1,5,9};
// 这种方法称之为 静态初始化方式
内容结构特点
Java程序在运行时需要给内存分配空间。为了提高运算效率又对空间进行了不同区域的划分,因为每一片区域都有了特定的处理数据和内存的方式。
java中分配了以下五片空间:
栈内存:
用于存储局部变量,当数据使用完毕内存会自动释放;堆内存:
1:数组和对象,用过new关键字创建的对象实体都存放在堆内存中,
2:每个实体都有内存地址
3:实体中的变量都有默认的初始化值
4:如果实例不在被使用java会自动启动垃圾回收器将垃圾回收方法区 >>本地方法区 >>寄存器
数组中常见问题
- 在操作数组是注意数组的长度,不要出现数组下标越界异常
- 在操作中不要出现空指针异常
如何操作数组
通过for循环逐个取出数组中的值
int[] array={11,15,13};
for(int a=0;a<3;a++){
System.out.println(“array[”+a+”]=”+array[a]);
}
在数组中提供了一个可以直接获取数组长度的属性 ”length“,我们只需要通过 “数组名.length”可以直接获取数组个数。如下:
int[] array={15,20,5,3,6,7,9,8,14};
for(int a=0;a<array.length;a++){
System.out.println(“array[”+a+”]=”+array[a]);
}
获取数组中的最大值
int[] array={15,20,14,8,9,10,32};
int max=array[0];
for(int a=1;a<array.length;a++){
if(max < array[a]){
max=array[a];
}
}
System.out.println(max);
获取数组中的最小值
int[] array={15,20,14,8,9,10,32};
int max=array[0];
for(int a=1;a<array.length;a++){
if(max > array[a]){
max=array[a];
}
}
System.out.println(max);
数组的排序方式
java中数组的排序方法
-
选择排序法
-
冒泡排序法
-
快速排序法
选择排序
从0下标开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小下标处,实例如下:
int[] array={15,20,14,8,9,10,32};
for(int a=0;a<array.length-1;a++){
for(int b=a+1;b<array.length;b++){
if(array[a]>array[b]){
in bijiao=array[a];
array[a]=array[b];
array[b]=bijiao;
}
}
}
冒泡排序
相邻的两个元素进行比较如果符合条件就换位
int[] array=new int[]{15,20,14,8,9,10};
for(int a=0;a<array.length-1;a++){
for(int b=0;b<array.length-a-1;b++){
if(array[b]>array[b+1]){
int aa=array[b];
array[b]=array[b+1];
array[b+1]=aa;
}
}
}
快速排序法
快速排序法就是运用了java中给我们提供的一个类”Arrays”下面的sort方法来实现升序排序,此方法需要导入“import java.util.Arrays;” 包。
int[] array={15,20,14,8,9,10,32};
Arrays.sort(array);
//上面这个代码就是用法
for(int c=0;c<array.length;c++){
System.out.println(array[c]);
}
二维数组
数组中的数组
格式一:
int[][] array=new int[3][5];
定义了一个名为array的二维数组
二维数组中有3个一维数组
每个一维数组的长度为5个元素
格式二
int[][] array=new int[3][];
array[0]=new int[5];
array[1]=new int[3];
array[2]=new int[4];
int[][] array=new int[2][3];
array[0][0]=10;
array[0][1]=12;
array[0][2]=12;
array[1][0]=15;
array[1][1]=14;
array[1][2]=16;
for(int a=0;a<array.length;a++){
for(int b=0;b<array[a].length;b++){
System.out.println(array[a][b]);
}
}