欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java基础学习--数组

程序员文章站 2022-06-25 16:02:27
1.数组的定义: 数组(Array)是相同数据类型的数据的有序集合。 2.数组的3个特点: 2.1数组长度是确定。数组一旦申请完空间,长度不能发生变化,用length属性访问。 2.2数组的元素都是同一数据类型。 2.3数组是有序的 。每个元素通过下标/索引标记,索引从0开始。 3.数组的3种声明方 ......

1.数组的定义:

数组(array)是相同数据类型的数据的有序集合。

2.数组的3个特点:

2.1数组长度是确定。数组一旦申请完空间,长度不能发生变化,用length属性访问。

2.2数组的元素都是同一数据类型。

2.3数组是有序的 。每个元素通过下标/索引标记,索引从0开始。

3.数组的3种声明方式:

3.1:

int[] arr = new int[2];

       arr[0] = 10;

       arr[1] = 20;

3.2:

int[] arr2 = new int[]{10,20,30,40,50};

3.3 :

int[] arr3 = {10,20,30,40};

4.数组的内存空间

数组的数据存储在堆空间中,声明数组时,在栈空间中存储数组在堆空间中的地址,所以数组时引用数据类型。

Java基础学习--数组

 

5.数组的遍历算法:

for(int i=0;i < arr.length;i++){

           system.out.println("arr[" + i + "]" + "=" + arr[i]);

       }

6.数组的常用算法

6.1插入算法

 

 

public class test07{

    public static void main(string[] args){

      

       // 一个有序的数组,向该数组中添加一个元素,数组依然有序。

       int[] arr = {1,3,7,9,12,20,0};

       int t = 0;

      

       // 1】找位置

       int loc = -1; // 表示t应该添加到的位置

       for(int i = 0;i<arr.length-1;i++){

           if(arr[i] >= t){

              loc = i;

              break;

           }

       }

      

       system.out.println("loc = "+loc);

      

       if(loc < 0){ // 没找到合适的位置

           arr[arr.length-1] = t;

       }else{

           // 2】依次后移

           for(int j=arr.length-1;j>loc;j--){

              arr[j] = arr[j-1];

           }

           // 3】添加插入的值

           arr[loc] = t;

       }

      

       // 验证

       for(int i = 0;i<arr.length;i++){

           system.out.print(arr[i]+"\t");

       }

    }

}

6.2删除算法:

 

 

public class test08{

    public static void main(string[] args){

      

       // 删除算法

       int[] arr = {1,3,7,9,12,20};

       int t = 1;

      

       // 1】找位置

       int loc = -1;

       for(int i=0;i<arr.length;i++){

           if(t == arr[i]){

              loc = i;

              break;

           }

       }

      

       // 2】移动元素

       if(loc < 0){

           system.out.println(t+"在数组中不存在");

       }else{

           for(int j = loc;j<arr.length-1;j++){

              arr[j] = arr[j+1];

           }

          

           // 3】最后一个元素置0

           arr[arr.length-1] = 0;

       }

      

       // 验证

       for(int i = 0;i<arr.length;i++){

           system.out.print(arr[i]+"\t");

       }

      

    }

}

6.3冒泡排序算法

 

public class test10{

    public static void main(string[] args){

       // 对一个无序的数组进行排序

       int[] arr = {10,5,3,4,2,9,7};

      

       int tmp = 0;

       for(int i=0;i<arr.length-1;i++){ // 外层控制趟数

          

           for(int j=0;j<arr.length-1-i;j++){ // 两两比较

             

              if(arr[j]>arr[j+1]){

                  tmp = arr[j];

                  arr[j] = arr[j+1];

                  arr[j+1] = tmp;

              }

           }

       }

      

       for(int i=0;i<arr.length;i++){

           system.out.print(arr[i]+"\t");

       }

      

    }

}