数组(1)
1.数组
1)定义
相同类型数据的有序集合
2)特点
1数据类型是相同的;
2数据时有序的;
3它的长度是确定的,一旦被写出,就不能被改变;
4数组内的数据类型可以是基本数据类型和引用数据类型。
3)内存分配
1栈内存(stack) 存储基本数据类型,占较小空间,不需要清理空间
2堆内存(heap) 存储引用数据类型,占较大空间,需要用new要申请堆内存,用完要删除,但Jvm自动清理空间
2.声明数据的方式<如int>
1)int [ ] arr;
arr=new int [ i ];
arr [0]=1;
arr [1]=2;
.......
System.out.println(arr[ i ]);
2) int [ ] arr=new int [ ] { 值1 ,值2,值3,... }
3)int [ ] arr={ 值1 ,值2,值3,... }
需要4步
声明一个数组;给数组分配空间;赋值;访问数组元素
3.数组的遍历
将每一数组元素进行访问
从控制台输出5名同学的成绩,并求平均分
import java.util.Scanner;
public class Test03{
public static void main(String[ ]args){
Scanner input=new Scanner(System.in);
float[] arr=new float[5];
float sum=0.0f;
for(int i=0;i<arr.length;i++){
System.out.println("第"+(i+1)+"位成绩为:");
arr[i]=input.nextFloat();
sum+=arr[i];
}
System.out.println("平均分为:"+sum/arr.length);
}
}
4.数组的算法
1)插入算法
在一个有序的数组中,添加一个元素,使其依然是有序的
1 //1 2 4 6 9 5 2 public class Test04{ 3 public static void main(String[]args){ 4 int [] arr={1,2,4,6,9,0}; 5 int t=5; 6 int wz=-1; 7 for(int i=0;i<arr.length-1;i++){ 8 if(arr[i]>=t){ 9 wz=i; 10 break; 11 } 12 } 13 System.out.println("wz"+wz); 14 if(wz<0){ 15 arr[arr.length-1]=t; 16 }else{ 17 for(int j=arr.length-1;j>wz;j--){ 18 arr[j]=arr[j-1]; 19 } 20 arr[wz]=t; 21 } 22 23 for(int i=0;i<arr.length;i++){ 24 System.out.println(arr[i]); 25 } 26 } 27 }
2)删除算法、
在一个有序的数组中,删除一个元素,数组依然有序
1 //一个有序的数组,删除一个元素,数组依然有序。 删除数组 2 //1 2 4 6 8 9 4 3 public class Test05{ 4 public static void main(String[]args){ 5 int [] arr={1,2,4,6,8,9}; 6 int t=4; 7 int wz=-1; 8 for(int i=0;i<arr.length;i++){ 9 if(t==arr[i]){ 10 wz=i; 11 break; 12 } 13 } 14 if(wz<0){ 15 System.out.println(t+"在数组中不存在"); 16 }else{ 17 for(int j=wz;j<arr.length-1;j++){ 18 arr[j]=arr[j+1]; 19 } 20 } 21 arr[arr.length-1]=0; 22 for(int i=0;i<arr.length;i++){ 23 System.out.println(arr[i]); 24 } 25 } 26 }
3)冒泡算法
在一个无序的数组中,将其变为一个有序的数组
1 //对一个无序的数组进行排序 冒泡算法 2 3 public class Test06{ 4 public static void main(String[]args){ 5 int [] arr={4,6,2,5,8,7,13}; 6 int ec=0; 7 for(int i=0;i<arr.length-1;i++){ //控制趟数 8 for(int j=0;j<arr.length-1-i;j++){//两两比较 9 if(arr[j]>arr[j+1]){ 10 ec=arr[j]; 11 arr[j]=arr[j+1]; 12 arr[j+1]=ec; 13 } 14 } 15 } 16 for(int i=0;i<arr.length;i++){ 17 System.out.println(arr[i]); 18 } 19 } 20 }