<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • Java數組定義常用方法

    時間:2024-09-28 01:42:21 JAVA認證 我要投稿
    • 相關推薦

    Java數組定義常用方法

      Java中的數組、是一種簡單的線性數據存儲結構、他用犧牲自動擴展大小來換取與集合相比的唯一優勢——查詢效率的提升。Java中的數組有什么類型?我們要怎么定義這些數組呢?下面跟yjbys小編一起來學習Java數組定義常用方法吧!

      java中有兩種數據類型:

      a)引用類型

      b)基礎類型

      其中基礎類型又有兩種:

      b1)數值類型

      b2)及布爾類型。

      數組——也為java的一個數據類型、歸類為引用類型。本文意圖說清楚兩點:

      1、數組的聲明以及初始化。

      2、常用的數組方法。

      補充一點:對于我們常說的二維數組、多維數組其實是一維數組的延伸、這里暫時只圍繞一維數組。

      【數組的聲明及初始化】

      1、數組的聲明:

      作為一種引用類型、就如我們平常使用引用類型的時候聲明一樣、一般有兩種寫法:

      a) type[] arrayName; exp: String[] strArray;

      b) type arrayName[]; exp: String strArray[];

      第二種源于C的寫法、由于很容易造成混淆、所以現在基本不使用這種聲明方式了。

      2、數組的初始化:

      數組的初始化有兩種:

      a) 靜態初始化——數組大小由系統分配、我們只為數組每個位置上賦值

      String[] strArray1 = {"a", "b", "c", "d", "e"};

      String[] strArray2 = new String[]{"a", "b", "c", "d", "e"};//在 new String[]中不能指定String數組的大小!

      b)動態初始化——只指定數值的大小、初始化工作由系統為我們完成(即為數組的每個位置賦初始值)

      String[] strArray3 = new String[5];//此時String數組的每個位置上的值都由系統來初始化、使用默認的值""

      //我們能做的是動態的為strArray3每個位置上的值進行修改

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

      //這里僅用原始的方法進行賦值。

      strArray3[i] = strArray1[i];

      }

      【數組的常用方法】

      package com.chy.array.usefulMethods;

      import java.util.ArrayList;

      import java.util.Arrays;

      import java.util.Collections;

      import java.util.HashSet;

      import java.util.Set;

      import com.chy.array.bean.Student;

      @SuppressWarnings("all")

      public class ArrayUseFulMethoed {

      private static int[] intArray = {1, 2, 3, 4, 5};

      private static String[] strArray = {"a", "b", "c", "d", "e"};

      /**

      * 填充元素、比較大小、復制元素

      */

      public static void testFillArray(){

      //注意字符串和對象的不同

      Student[] student1 = new Student[4];

      Student[] student2 = new Student[4];

      System.out.println(Arrays.equals(student1, student2));//true

      Arrays.fill(student1, 0, 4, new Student(1,"chy"));

      Arrays.fill(student2, new Student(1,"chy"));

      System.out.println(Arrays.equals(student1, student2));//false

      String[] str1 = new String[4];

      String[] str2 = new String[]{"a", "a", "a", "a"};

      String[] str3 = {new String("a"), new String("a"), new String("a"), new String("a")};

      Arrays.fill(str1, "a");

      System.out.println(Arrays.equals(str1, str2));//true

      System.out.println(Arrays.equals(str2, str3));//true

      String[] str4 = Arrays.copyOf(str1, 2);//是將傳入的數組拷貝len個元素到新的數組、相當于復制本身的一部分或者全部形成一個全新的數組

      System.out.println(str4.length + "=======" + Arrays.toString(str4));// 2=======[a, a]

      String[] str5 = new String[8];

      System.arraycopy(str4, 0, str5, 6, 2);//是將str4從下標0開的2個元素拷貝到從下標6開始放置的數組str5中

      System.out.println(str5.length + "=======" + Arrays.toString(str5));// 8=======[null, null, null, null, null, null, a, a]

      }

      /**

      * 以字符串的形式輸出指定數組的“模樣”

      */

      public static void printOriginalArray(){

      String intArrayToString = Arrays.toString(intArray);

      System.out.println(intArrayToString); //result: [1, 2, 3, 4, 5]

      }

      /**

      * 將數組轉化成List集合

      * 注意:不能直接將int[]轉化為集合、因為asList()方法的參數必須是對象。應該先把int[]轉化為Integer[]。

      * 對于其他primitive類型的數組也是如此,必須先轉換成相應的wrapper類型數組。

      */

      public static void convetArrayToList(){

      Integer[] integerArray = new Integer[intArray.length];

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

      integerArray[i] = intArray[i];

      }

      ArrayList integerList1 = new ArrayList(Arrays.asList(integerArray));

      /*

      * 不能寫成下面:

      * ArrayList integerList2 = (ArrayList)Arrays.asList(integerArray);

      * 返回的是List、強轉可以通過編譯、但是不能正常使用。

      */

      for(int i : integerList1){

      System.out.print(i);

      }

      //result: 12345

      System.out.println();

      }

      /**

      * 將List集合轉換成數組

      */

      public static void convetListToArray(){

      ArrayList strList = new ArrayList(Arrays.asList(strArray));

      String[] strArrayFromList = new String[strList.size()];

      strList.toArray(strArrayFromList);

      System.out.println(Arrays.toString(strArrayFromList)); //result: [a, b, c, d, e]

      /*

      * 注意:不能寫成這樣:String[] strArrayFromList = (String[])strList.toArray(strArrayFromList);會拋出ClassCastException。

      * List.toArray()與List.toArray(T[] t)的區別在于:

      * List.toArray()返回的是一個Object[]、不能強轉成String[]、強轉的話可以通過編譯、但是不能進行String[]的操作

      * 而List.toArray(T[] t)會將list的值轉換成T類型的數組。

      */

      }

      /**

      * 將數組轉換成Set集合

      */

      public static void convertArrayToSet(){

      Set set = new HashSet(Arrays.asList(strArray));

      //Set具有無序性、所以輸出結構不一定是原來數組元素存放順序

      System.out.println(set); //result: [d, e, b, c, a]

      }

      /**

      * 判斷某個數組中是否包含一個元素、思路:將數組轉換成list使用list的contains方法

      */

      public static void isContainObject(){

      ArrayList strList = new ArrayList(Arrays.asList(strArray));

      System.out.println(strList.contains("a")); //result: true

      //另一種實現

      Arrays.sort(strArray);

      if(Arrays.binarySearch(strArray, "c") >= 0){

      System.out.println(true);

      }else{

      System.out.println(false);

      }

      }

      /**

      * 將兩個相同類型的數組連接起來

      */

      public static void connTwoSameArray(){

      int[] intArray2 = new int[]{6, 7, 8, 9, 10};

      }

      /**

      * 將數組中數據排序

      */

      public static void sortArray(){

      String[] str = {"c", "a" ,"d" ,"z" };

      Arrays.sort(str);

      System.out.println(Arrays.toString(str));

      //反序、

      Arrays.sort(str, Collections.reverseOrder());

      System.out.println(Arrays.toString(str));

      }

      public static void main(String[] args) {

      /*printOriginalArray();

      convetArrayToList();

      convetListToArray();

      isContainObject();

      convertArrayToSet();

      sortArray();*/

      testFillArray();

      }

      }

    【Java數組定義常用方法】相關文章:

    Java數組操作方法大全08-22

    2016年java數組操作方法大全06-19

    JavaScript數組常用方法介紹09-04

    Java枚舉的常用方法10-05

    c語言字符數組使用方法10-14

    Java線程同步的方法10-25

    Java中日期的處理方法09-03

    JAVA認證開源技術:關于Java的對象equals方法06-26

    Java獲取當前的系統時間的方法05-28

    Java開發Tomcat部署項目方法10-13

    主站蜘蛛池模板: 四虎精品亚洲一区二区三区| 久久亚洲精品国产精品| 日韩视频中文字幕精品偷拍| 国产精品美女一区二区视频| 欧美精品在线视频| 6080亚洲精品午夜福利| 国产精品区免费视频| 亚洲AV无码之日韩精品| 99久久精品久久久久久清纯| 国产精品欧美亚洲韩国日本| 日韩精品一区二区亚洲AV观看| 久久精品成人| 91精品国产综合久久四虎久久无码一级| 国产综合精品女在线观看| 亚洲精品欧美二区三区中文字幕| 国产精品无打码在线播放| 亚洲国产成人久久精品影视| 91麻豆精品国产| 精品久久久久久无码中文字幕一区| 亚洲精品456播放| 免费视频精品一区二区| 国产精品美女久久久久AV福利| 亚洲无删减国产精品一区| 国产a精品视频| 国产福利精品一区二区| 精品一区二区三区无码免费视频| 亚洲国产第一站精品蜜芽| 中日精品无码一本二本三本| 亚洲国产精品综合久久一线| 午夜福利麻豆国产精品| 少妇亚洲免费精品| 四虎影视永久在线精品免费| 鲸鱼传媒绿头鱼实验室之炮机测评日韩精品一级毛 | 亚洲精品无码AV中文字幕电影网站| 久久精品这里只有精99品| 久久精品二区| 亚洲AV无码之日韩精品| 小辣椒福利视频精品导航| 久久精品国产亚洲AV嫖农村妇女| 日本伊人精品一区二区三区| 国精品无码一区二区三区左线|