<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          數(shù)組的定義與操作

          共 11382字,需瀏覽 23分鐘

           ·

          2022-08-02 21:53

          收錄更新:https://github.com/cunyu1943/JavaPark

          目錄

          • 前言

          • 數(shù)組簡介

            • 一維數(shù)組

            • 二維數(shù)組

          • 數(shù)組遍歷

            • 標準 for 循環(huán)

            • 增強 for 循環(huán)

            • 標準庫遍歷

          • 數(shù)組排序

            • 使用排序算法

            • 標準庫排序

          • 常用方法

          • 總結(jié)


          前言

          前邊已經(jīng)講過了 Java 中的 8 大基本數(shù)據(jù)類型,這篇文章主要就來講講引用類型中的數(shù)組。主要內(nèi)容安排如下:

          • 數(shù)組簡介
          • 遍歷
          • 排序
          • 常用方法

          數(shù)組簡介

          所謂數(shù)組,其實就是多個相同數(shù)據(jù)類型的元素按一定順序排列而成的集合。即將有限個類型相同的變量放到一個容器中,然后按照編號去訪問各個元素,而這個容器的名字就叫做數(shù)組名,各個元素的編號就叫做索引位置。而其中索引位置是從 0 開始計數(shù),而不是我們?nèi)粘K晳T的 1

          要定義一個數(shù)組類型的遍歷,其語法為 數(shù)據(jù)類型 [],比如 int[],而且在初始化時必須指定數(shù)組大小,如 int[] arr = new int[10],表示 arr 數(shù)組可以容納 10int 類型的元素。

          數(shù)組的特點:

          • 數(shù)組中的元素初始化時都是有默認值的,整型對應 0,浮點型對應 0.0,而布爾型對應 false。
          • 數(shù)組一經(jīng)創(chuàng)建,其大?。ㄩL度)就不可再變。
          • 要訪問數(shù)組中的某一元素,需要用到索引,索引從 0 開始。
          • 如果要修改數(shù)組中的某一元素,直接對對應索引位置的元素使用賦值語句即可。

          和變量一樣,既然定義了,那么就要對數(shù)組進行初始化。所謂數(shù)組的初始化,指的是在內(nèi)存中,為數(shù)組容器開辟空間,然后將數(shù)據(jù)存入容器中的過程。而常用的初始化方式主要有兩種:

          • 靜態(tài)初始化
          • 動態(tài)初始化

          一維數(shù)組

          初始化

          1. 靜態(tài)初始化

          所謂靜態(tài)初始化,就是在定義數(shù)組的同時將其初始化。

          靜態(tài)初始化的完整格式如下:

          數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[]{元素 1, 元素 2, 元素 3…};

          但在開發(fā)時,為了方便,也可以對上面的代碼進行簡寫:

          數(shù)據(jù)類型[] 數(shù)組名 = {元素 1, 元素 2, 元素 3…};

          兩種方式最終得到的結(jié)果是一樣的,但第二種更加簡潔方便。

          int[] arr1 = {135810};
          int[] arr2 = new int[] {135810};
          1. 動態(tài)初始化

          動態(tài)初始化,就是先聲明數(shù)組長度定義之后,再由系統(tǒng)對其分配初始值。

          數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[數(shù)組長度];
          int[] arr = new int[5];
          arr[0] = 1;
          arr[1] = 3;
          arr[2] = 5;
          arr[3] = 8;
          arr[4] = 10;

          PS:注意數(shù)組的索引位置不能超過數(shù)組的長度,如上面例子中的數(shù)組長度為 5,所以我們數(shù)組的索引位置最大只能為 4,否則就會報數(shù)組越界錯誤。

          求數(shù)組長度

          求數(shù)組的長度,利用數(shù)組的 length 屬性即可;

          int[] arr = new int[10];
          int size = arr.length; // 10
          System.out.println("size = " + size);

          二維數(shù)組

          初始化

          1. 靜態(tài)初始化
          int[][] arr1 = {{1, 2, 4}, {5, 7, 9}, {19, 12, 18}};
          1. 動態(tài)初始化

          二位數(shù)組動態(tài)聲明時,一種是把行和列的長度都指定,而另一種是只需要指定行的長度,不用指定列的長度,列的長度會在初始化時自動確認。

          int[][] arr1= new int[3][3];
          arr1 = new int[][]{{1, 2, 4}, {5, 7, 9}, {19, 12, 18}};

          int[][] arr2= new int[3][];
          arr2 = new int[][]{{1, 2, 4}, {5, 7, 9}, {19, 12, 18}};

          求數(shù)組長度

          不同于一維數(shù)組,因為二維數(shù)組有行和列,所需求長度時需要分別求。

          int[][] arr = new int[10][20];

          // 求行的長度
          int row = arr.lenght;
          // 求列的長度,此時求任意一行所在的列的長度即可
          int col = arr[0].length;

          數(shù)組遍歷

          既然我們已經(jīng)學會了數(shù)組的聲明及初始化,接下來就是對數(shù)組進行操作,而最常見的則是遍歷數(shù)組。所謂遍歷,就是將數(shù)組中的所有元素取出來,然后操作這些取出來的元素。

          假設(shè)我們有一個數(shù)組如下:

          String[] arr = new String[5];
          arr = new String[]{"村雨遙""海賊王""進擊的巨人""鬼滅之刃""斗羅大陸"};

          標準 for 循環(huán)

          首先,我們來使用標準的 for 循環(huán)來遍歷該數(shù)組,只需要通過數(shù)組的索引位置來訪問即可。

          /**
           * @author : cunyu1943
           * @version : 1.0
           * @className : TraverseTest
           * @date : 2021/4/25 11:52
           * @description : 遍歷
           */


          public class TraverseTest {
              public static void main(String[] args) {
                  String[] arr = new String[5];
                  arr = new String[]{"村雨遙""海賊王""進擊的巨人""鬼滅之刃""斗羅大陸"};

          //        數(shù)組長度
                  int size = arr.length;
                  for (int i = 0; i < size; i++) {
                      System.out.println("第 " + (i + 1) + " 個元素:" + arr[i]);
                  }
              }
          }

          增強 for 循環(huán)

          /**
           * @author : cunyu
           * @version : 1.0
           * @className : EnforceTraverseTest
           * @date : 2021/4/26 9:14
           * @description : 增強 for 循環(huán)
           */


          public class EnforceTraverseTest {
              public static void main(String[] args) {
                  String[] arr = new String[5];
                  arr = new String[]{"村雨遙""海賊王""進擊的巨人""鬼滅之刃""斗羅大陸"};
                  int index = 0;
                  for (String name : arr) {
                      System.out.println("第 " + (index + 1) + " 個元素:" + name);
                      index++;
                  }
              }
          }

          兩者的區(qū)別:標準 for 循環(huán)是通過計數(shù)器來進行遍歷,我們能夠很清晰的得知每個元素所對應的索引位置,而增強 for each 循環(huán)則是直接訪問數(shù)組中的元素值,而不關(guān)心每個元素對應的索引位置。

          標準庫遍歷

          通過調(diào)用標準庫 Arrays 中的 toString() 方法,我們可以將任意類型的數(shù)組轉(zhuǎn)換為一個字符串表示形式,從而打印出來。

          import java.util.Arrays;

          /**
           * @author : cunyu
           * @version : 1.0
           * @className : StandardLibraryTest
           * @date : 2021/4/26 9:22
           * @description : 標準庫遍歷
           */


          public class StandardLibraryTest {
              public static void main(String[] args) {
                  String[] arr = new String[5];
                  arr = new String[]{"村雨遙""海賊王""進擊的巨人""鬼滅之刃""斗羅大陸"};
                  System.out.println(Arrays.toString(arr));
              }
          }

          以上的遍歷主要是針對一維數(shù)組,而針對二維數(shù)組,當我們要訪問其中的一個元素時,可以使用 array[row][col] 來進行訪問,而對于二維及更多維的數(shù)組,可以使用 Arrays.deepToString()。

          數(shù)組排序

          使用排序算法

          排序算法多樣,最常用的則有 冒泡排序、插入排序、快速排序等,進行排序時會修改數(shù)組本身;

          冒泡排序:經(jīng)過一輪循環(huán),將最大的數(shù)置換到末尾,然后進入下一輪循環(huán),每輪均比上一輪的結(jié)束位置靠前一位;

          import java.util.Arrays;

          /**
           * @author : cunyu
           * @version : 1.0
           * @className : BubbleSort
           * @date : 2021/4/26 10:16
           * @description : 冒泡排序
           */


          public class BubbleSort {
              public static void main(String[] args) {
                  char[] chArray = {'c''u''n''y''u'};
                  // 排序前
                  System.out.println(Arrays.toString(chArray));

                  for (int i = 0; i < chArray.length - 1; i++) {
                      for (int j = 0; j < chArray.length - 1 - i; j++) {
                          // 從大到小
                          if (chArray[j] < chArray[j + 1]) {
                              // 交換
                              char temp = chArray[j];
                              chArray[j] = chArray[j + 1];
                              chArray[j + 1] = temp;
                          }
                      }
                  }
                  // 冒泡排序后
                  System.out.println(Arrays.toString(chArray));
              }
          }

          標準庫排序

          import java.util.Arrays;

          /**
           * @author : cunyu
           * @version : 1.0
           * @className : StandardLibrarySortTest
           * @date : 2021/4/26 10:22
           * @description : 標準庫排序
           */


          public class StandardLibrarySortTest {
              public static void main(String[] args) {
                  String[] arr = new String[]{"村雨遙""海賊王""進擊的巨人""鬼滅之刃""斗羅大陸"};

          //        排序前
                  System.out.println(Arrays.toString(arr));
          //        標準庫排序
                  Arrays.sort(arr);
          //        排序后
                  System.out.println(Arrays.toString(arr));
              }
          }

          常用方法

          對于數(shù)組而言,Java 標準庫中已經(jīng)內(nèi)置了許多方法,常用的有如下一些方法:

          返回值方法描述
          static StringtoString(Object[] a)輸出數(shù)組的字符串形式
          static <T> List<T>asList(T…… a)數(shù)組轉(zhuǎn) List
          import java.util.ArrayList;
          import java.util.Arrays;
          import java.util.List;

          /**
           * @author : cunyu
           * @version : 1.0
           * @className : CommonMethodsTest
           * @date : 2021/4/26 10:37
           * @description : 常用方法
           */


          public class CommonMethodsTest {
              public static void main(String[] args) {
                  String[] arr = new String[]{"村雨遙""海賊王""進擊的巨人""鬼滅之刃""斗羅大陸"};
          //        輸出數(shù)組的字符串形式
                  System.out.println("打印數(shù)組");
                  System.out.println(Arrays.toString(arr));
          //        數(shù)組轉(zhuǎn)列表
                  System.out.println("數(shù)組轉(zhuǎn)列表");
                  List<String> list = new ArrayList<String>(Arrays.asList(arr));
                  System.out.println(list);

                  System.out.println("列表轉(zhuǎn)數(shù)組");
                  list.add("鎮(zhèn)魂街");
                  String[] newArr = new String[list.size()];
                  list.toArray(newArr);
                  System.out.println(Arrays.toString(newArr));

                  System.out.println("數(shù)組是否包含某一元素");
                  System.out.println(Arrays.asList(newArr).contains("進擊的巨人"));
                  System.out.println(Arrays.asList(newArr).contains("網(wǎng)球王子"));
              }
          }

          總結(jié)

          數(shù)組相關(guān)的內(nèi)容就到此結(jié)束了,主要從 4 個方面簡單介紹了數(shù)組的一些相關(guān)用法,如果你有更多想要了解的內(nèi)容,歡迎評論區(qū)留言交流。最后,都看到這兒了,不給個贊和關(guān)注再走么 ??.

          - END -
          瀏覽 43
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  性欧美视频| 麻豆91一区二区 | 就爱草逼 | 福利视频免费观看 | 久久高清99 |