Java基础学习--数组

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.数组的内存空间

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

 

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");

       }

      

    }

}

 

posted @ 2019-04-16 22:07  WhisperHong  阅读(316)  评论(0编辑  收藏  举报