国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaSE】一維數(shù)組和二維數(shù)組詳解

這篇具有很好參考價值的文章主要介紹了【JavaSE】一維數(shù)組和二維數(shù)組詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【JavaSE】一維數(shù)組和二維數(shù)組詳解,學(xué)習(xí),python,算法

歡迎關(guān)注個人主頁:逸狼


創(chuàng)造不易,可以點點贊嗎~

如有錯誤,歡迎指出~


目錄

一維數(shù)組

基本語法

初始化

遍歷和打印

數(shù)組是引用型變量

基本類型變量與引用類型變量的區(qū)別

null

數(shù)組傳參和返回

總結(jié)

二維數(shù)組

基本語法

初始化

遍歷和打印



一維數(shù)組

數(shù)組:可以看成是相同類型元素的一個集合。

基本語法

T[] 數(shù)組名 = new T[N];?

  • T:表示數(shù)組中存放元素的類型
  • T[]:表示數(shù)組的類型
  • N:表示數(shù)組的長度

初始化

int[] array={1,2,3,4,5};
int []arr1=new int[]{1,3,4};
int []aa=new int[19];

遍歷和打印

  • 數(shù)組是一段連續(xù)的內(nèi)存空間,因此支持隨機訪問,即通過下標訪問快速訪問數(shù)組中任意位置的元素 ?
  • 下標從0開始,介于[0, N)之間不包含N,N為元素個數(shù),不能越界,否則會報出下標越界異常。

三種方法

        public static void main(String[] args) {
            int[] array={1,2,3,4,5};
            System.out.println(array.length);//求數(shù)組長度
            System.out.println(array[2]);//通過下標訪問數(shù)組元素

            //遍歷打印數(shù)組
            for (int i = 0; i < array.length; i++) {
                System.out.print(array[i]+" ");
            }

            //for each循環(huán) 遍歷數(shù)組,把每一個值放入x中,獲取不到下標
            for (int x:array) {
                System.out.print(x+" ");
            }

            //借助Java的原生的方法   
            String ret= Arrays.toString(array);//將數(shù)組元素以字符串的形式輸出
            System.out.println(ret);

數(shù)組是引用型變量

引用變量并不直接存儲對象本身,可以簡單理解成存儲的是對象在堆中空間的起始地址。通過該 地址,引用變量便可以去操作對象。

【JavaSE】一維數(shù)組和二維數(shù)組詳解,學(xué)習(xí),python,算法

JVM內(nèi)存分布

  • 程序計數(shù)器 (PC Register): 只是一個很小的空間, 保存下一條執(zhí)行的指令的地址
  • 虛擬機棧(JVM Stack): 與方法調(diào)用相關(guān)的一些信息,每個方法在執(zhí)行時,都會先創(chuàng)建一個棧幀,棧幀中包含 有:局部變量表、操作數(shù)棧、動態(tài)鏈接、返回地址以及其他的一些信息,保存的都是與方法執(zhí)行時相關(guān)的一 些信息。比如:局部變量。當(dāng)方法運行結(jié)束后,棧幀就被銷毀了,即棧幀中保存的數(shù)據(jù)也被銷毀了。
  • 本地方法棧(Native Method Stack): 本地方法棧與虛擬機棧的作用類似. 只不過保存的內(nèi)容是Native方法的局 部變量. 在有些版本的 JVM 實現(xiàn)中(例如HotSpot), 本地方法棧和虛擬機棧是一起的
  • 堆(Heap): JVM所管理的最大內(nèi)存區(qū)域. 使用 new 創(chuàng)建的對象都是在堆上保存 ,堆是隨著程序開始運行時而創(chuàng)建,隨著程序的退出而銷毀,堆中的數(shù)據(jù)只要還有在使用,就不會被銷 毀。
  • 方法區(qū)(Method Area): 用于存儲已被虛擬機加載的類信息、常量、靜態(tài)變量、即時編譯器編譯后的代碼等數(shù) 據(jù). 方法編譯出的的字節(jié)碼就是保存在這個區(qū)域 現(xiàn)在我們只簡單關(guān)心堆 和 虛擬機棧這兩塊空間

基本類型變量與引用類型變量的區(qū)別

  • 基本數(shù)據(jù)類型創(chuàng)建的變量,稱為基本變量,該變量空間中直接存放的是其所對應(yīng)的;
  • 而引用數(shù)據(jù)類型創(chuàng)建的變量,一般稱為對象的引用,其空間中存儲的是對象所在空間的地址

【JavaSE】一維數(shù)組和二維數(shù)組詳解,學(xué)習(xí),python,算法

【JavaSE】一維數(shù)組和二維數(shù)組詳解,學(xué)習(xí),python,算法

null

可以將數(shù)組置為null

int[] arr = null;

null 的作用類似于 C 語言中的 NULL (空指針), 都是表示一個無效的內(nèi)存位置. 因此不能對這個內(nèi)存進行任何讀寫操 作. 一旦嘗試讀寫, 就會拋出 NullPointerException.

注意: Java 中并沒有約定 null 和 0 號地址的內(nèi)存有任何關(guān)聯(lián)

數(shù)組傳參和返回

本質(zhì)上還是傳值調(diào)用

例如想要實現(xiàn)將原數(shù)組的每一位元素都擴大兩倍

有兩種實現(xiàn)方法

    //無返回值
    public static void func(int[]array1){
        for (int i = 0; i < array1.length; i++) {
            array1[i]= array1[i]*2;//將每個數(shù)字擴大2倍
        }
    }

    //數(shù)組作為返回值
    public static int[] func2(int[]array1){
        int[]tmp=new int[array1.length];
        for (int i = 0; i < array1.length; i++) {
            tmp[i]=array1[i]*2;
        }
        return tmp;//Java中數(shù)組可以是返回值
    }

    public static void main(String[] args) {
        int[] array={1,2,4,5};
        int[] retArray=func2(array);//本質(zhì)上還是傳值調(diào)用
        String ret=Arrays.toString(retArray);
        System.out.println(ret);
    }

總結(jié)

所謂的 "引用" 本質(zhì)上只是存了一個地址. Java 將數(shù)組設(shè)定成引用類型, 這樣的話后續(xù)進行數(shù)組參數(shù)傳參, 其實 只是將數(shù)組的地址傳入到函數(shù)形參中. 這樣可以避免對整個數(shù)組的拷貝(數(shù)組可能比較長, 那么拷貝開銷就會很大).

二維數(shù)組

基本語法

數(shù)據(jù)類型[][] 數(shù)組名稱 = new 數(shù)據(jù)類型 [行數(shù)][列數(shù)] { 初始化數(shù)據(jù) };

【JavaSE】一維數(shù)組和二維數(shù)組詳解,學(xué)習(xí),python,算法

初始化

有三種

        //二維數(shù)組
        int[][]array={{1,3,4,5},{6,6,4,7}};//是第二種的簡化,常用
        int[][]array2=new int[][]{{1,3,4,5},{6,6,4,7}};
        int[][]array3=new int[2][4];//全部初始化為0

遍歷和打印

有兩種

 public static void main(String[] args) {
        //二維數(shù)組
        int[][]array={{1,3,4,5},{6,6,4,7}};
//第一種,要數(shù)行和列的個數(shù)
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.print(array[i][j]+" ");
            }
            System.out.println();
        }
        System.out.println("#########");
        //另一種不用數(shù)二維數(shù)組的個數(shù)的方法
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.print(array[i][j]+" ");
            }
            System.out.println();
        }
    }

結(jié)果

【JavaSE】一維數(shù)組和二維數(shù)組詳解,學(xué)習(xí),python,算法文章來源地址http://www.zghlxwxcb.cn/news/detail-844866.html

到了這里,關(guān)于【JavaSE】一維數(shù)組和二維數(shù)組詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【PHP】二維數(shù)組轉(zhuǎn)一維數(shù)組

    在 PHP 中,如果你想將一個二維數(shù)組轉(zhuǎn)換為一維數(shù)組,你可以使用幾種不同的方法。以下是一些常見的方法: array_column() 用于提取數(shù)組中的列,最為直接 array_map() 用于對數(shù)組中的每個元素應(yīng)用回調(diào)函數(shù),返回的是由回調(diào)函數(shù)的返回值組成的新數(shù)組。 以上任何一種方法都可以

    2024年02月04日
    瀏覽(19)
  • 【013】C++數(shù)組之一維數(shù)值數(shù)組和二維數(shù)值數(shù)組

    【013】C++數(shù)組之一維數(shù)值數(shù)組和二維數(shù)值數(shù)組

    ?? 作者簡介:專注于C/C++高性能程序設(shè)計和開發(fā),理論與代碼實踐結(jié)合,讓世界沒有難學(xué)的技術(shù)。包括C/C++、Linux、MySQL、Redis、TCP/IP、協(xié)程、網(wǎng)絡(luò)編程等。 ?? ??? CSDN實力新星,社區(qū)專家博主 ?? ?? 專欄介紹:從零到c++精通的學(xué)習(xí)之路。內(nèi)容包括C++基礎(chǔ)編程、中級編程、

    2024年02月06日
    瀏覽(36)
  • C語言中一維數(shù)組及二維數(shù)組的運用

    C語言中一維數(shù)組及二維數(shù)組的運用

    int * p? = arr; int * q?= arr[1]; 其中arr是數(shù)組名,代表了整個數(shù)組的首元素地址,這個是一個常量,放在常量存儲區(qū),所以在給int*p賦值的時候可以不用帶,而下面的arr[1]則代表數(shù)組里的某一個元素,所以在賦值時要加上 ?有個例題: 下列運行結(jié)果 ?解析:首先看main函數(shù)里的第二

    2024年02月13日
    瀏覽(28)
  • 【C語言】利用數(shù)組處理批量數(shù)據(jù)(一維數(shù)組和二維數(shù)組)

    【C語言】利用數(shù)組處理批量數(shù)據(jù)(一維數(shù)組和二維數(shù)組)

    前言 :在前面學(xué)習(xí)的程序中使用的變量都屬于基本類型,例如整型、字符型、浮點型數(shù)據(jù),這些都是簡單的數(shù)據(jù)類型。對于簡單的問題,使用這些簡單的數(shù)據(jù)類型就可以了。但是對于有些需要處理的數(shù)據(jù),只用以上簡單的數(shù)據(jù)類型是不夠的,難以反映出數(shù)據(jù)的特點,也難以有

    2024年02月08日
    瀏覽(24)
  • 頭歌——一維數(shù)組和二維數(shù)組全對答案秒過

    我相信大家都會,只是整個亂七八糟的事太多了,發(fā)布這個文章的目的不是讓你去抄襲,而是去學(xué)習(xí),不要說我傳播啊,服了這個文章建議怎么還不消掉,難道他看出我在摸魚了嗎?雖然我現(xiàn)在就兩個粉絲,嗯,這幾天可以看出我更新不是很積極,主要是一直再寫學(xué)生管理系

    2024年02月04日
    瀏覽(39)
  • 065:vue中將一維對象數(shù)組轉(zhuǎn)換為二維對象數(shù)組

    065:vue中將一維對象數(shù)組轉(zhuǎn)換為二維對象數(shù)組

    第065個 查看專欄目錄: VUE ------ element UI 在vue和element UI聯(lián)合技術(shù)棧的操控下,本專欄提供行之有效的源代碼示例和信息點介紹,做到靈活運用。 (1)提供vue2的一些基本操作:安裝、引用,模板使用,computed,watch,生命周期(beforeCreate,created,beforeMount,mounted, beforeUpdate,upda

    2024年02月02日
    瀏覽(37)
  • 《C語言深度解剖》(4):深入理解一維數(shù)組和二維數(shù)組

    《C語言深度解剖》(4):深入理解一維數(shù)組和二維數(shù)組

    ??博客主頁:醉竺 ?? 本文專欄: 《C語言深度解剖》 ?? 歡迎關(guān)注: 感謝大家的點贊評論+關(guān)注,祝您學(xué)有所成! ??????想要學(xué)習(xí)更多 數(shù)據(jù)結(jié)構(gòu)與算法 點擊專欄鏈接查看?????? ? 數(shù)組是一組相同類型元素的集合。 數(shù)組的創(chuàng)建方式:? 數(shù)組創(chuàng)建的實例:? 注:數(shù)組

    2024年04月09日
    瀏覽(18)
  • C語言中函數(shù)返回數(shù)組(一維和二維)

    C語言中函數(shù)返回數(shù)組(一維和二維)

    C語言中函數(shù)返回數(shù)組是很重要的一種應(yīng)用,有時候在程序中調(diào)用函數(shù)返回數(shù)組可以更容易的實現(xiàn)我們想要的某些操作,比如一次返回多個值,這篇文章帶來的是C語言中函數(shù)返回一維數(shù)組和二維數(shù)組的例子。 函數(shù)返回一維數(shù)組中需要注意的是:定義函數(shù)時需要在函數(shù)類型的后

    2024年02月04日
    瀏覽(21)
  • 從二維數(shù)組到一維數(shù)組——探索01背包問題的動態(tài)規(guī)劃優(yōu)化

    從二維數(shù)組到一維數(shù)組——探索01背包問題的動態(tài)規(guī)劃優(yōu)化

    本文將繼續(xù)上一篇博客爬樓梯之后繼續(xù)講解同樣用到了動態(tài)規(guī)劃的 01背包問題 在解決動態(tài)規(guī)劃問題時,我們經(jīng)常面臨著空間復(fù)雜度的挑戰(zhàn)。01背包問題是一個典型的例子,通常使用二維數(shù)組來表示狀態(tài)轉(zhuǎn)移,但這樣會帶來額外的空間開銷。在本文中,我們將探討如何通過優(yōu)化

    2024年04月11日
    瀏覽(28)
  • JavaSE核心基礎(chǔ)-二維數(shù)組-筆記

    1.二維數(shù)組概述 所謂二維數(shù)組就是數(shù)組中的數(shù)組,它的定義格式和一維數(shù)組很像。可以保存更多同類型的數(shù)據(jù)。二維數(shù)組的每一個元素是一個一維數(shù)組。 2. 二維數(shù)組定義的三種格式以及使用 ? 1)格式1(動態(tài)初始化): int[][] arr = new int [3][2] ; 定義了名稱為arr的二維數(shù)組,二

    2024年01月24日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包