• 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]+" ");

           }

        }

    }

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

           }

          

        }

    }

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

           }

          

        }

    }

  • 相关阅读:
    FAQ: c++ 函数名后添加 const void function1(int &id) const
    FAQ: C++中定义类的对象:用new和不用new有何区别?
    How to create a project with existing folder of files in Visual Studio?
    How to export a template in Visual Studio?
    t4 multiple output sample
    fastjson1.2.48以下版本存在重大漏洞
    一秒完成springboot与logback配置
    统计greenplum_postgresql数据占用存储情况
    上传文件不落地转Base64字符串
    三个标签完成springboot定时任务配置
  • 原文地址:https://www.cnblogs.com/WhiperHong/p/10720395.html
Copyright © 2020-2023  润新知