一起學JAVA——數組和函數

2020-12-13 程龍快序

之前我們介紹了java的數據類型、變量、流程控制等內容。今天我們高級數據類型——數組以及函數的作用。

函數(方法)

函數的定義

函數就是一段有名字的代碼,可以完成某一特定功能。

方法(函數)是java的最小代碼重用單位,方法(函數)是為了重用代碼。

方法不能嵌套方法,不能在一個方法內部定義另外一個方法。

可以在一個方法內部調用另外一個方法。

方法必須寫在類(class)裡。

如果有一段代碼要使用多次,我們可以給它起個名字,每次使用時通過名字調用,這樣就不用每次都寫一大段代碼了。

如果某個函數在執行的時候需要調用者傳入數據,那麼可以定義參數列表,用於接收數據。

如果函數運行之後需要返回給調用者數據,那麼需要指定返回值類型,並且用關鍵字return返回。

定義函數的3個必要條件:函數名、參數列表、返回值類型。如果不需要參數也要寫小括號,如果沒有返回值類型要寫void。

名詞解釋

形參:在定義函數時小括號中的參數,用來接收數據的參數。

實參:在調用函數時真正傳入的參數,傳遞給函數的數據。

參數類型:函數的參數的類型,一旦定義傳入時必須匹配。

返回值:函數運行結束後返回的值,使用return關鍵字返回。

返回值類型:函數運行結束後返回的值的類型,在類型非void情況下必須返回,而且必須類型匹配。

函數的重載

多個函數的函數名相同,參數列表不同(個數、順序、類型),這就是函數的重載。在調用函數的時候通過傳入的實參找到匹配的函數調用。函數的重載和返回值類型無關。

數組

什麼是數組

數組是一個類型一致,長度不可變的容器。可以通過索引操作容器中的每一個元素。

如果有多個類型相同的數據需要存儲,我們就可以將其定義為一個數組,這樣做省去了創建多個變量的麻煩。

如何定義數組

int[] arr = {1,2,3};

定義int數組arr,長度為3,其中3個元素分別為1、2、3。這種方式只能在定義數組的時候使用。

int[] arr = new int[]{1,2,3};

定義int數組arr,長度為3,其中3個元素分別為1、2、3。可以在任何情況使用。

int[] arr = new int[10];

定義int數組arr,長度為10。其中所有元素都為默認值0。

數組的長度:arr.length

訪問數組元素、遍歷數組

存在數組中的數據是有索引的,從0開始遞增,我們通過數組名和索引就可以操作其中每一個元素。例如:

System.out.println(arr[0]); // 列印數組中索引為0的元素

arr[1] = 100; // 給數組中索引為1的元素賦值為100數組的長度

數組可以使用length屬性獲取其長度。

遍歷數組

由於數組可以通過索引獲取每一個元素,又可以通過length獲取長度,那麼我們就可以定義循環來遍歷數組中的每一個元素了。

使用數組時的異常

如果訪問數組時索引越界(小於0或者大於length-1),會拋出異常:ArrayIndexOutOfBoundsExcepion

如果訪問數組的引用為空(null),會拋出空指針異常:NullPointerException

與數組操作相關函數

Arrays.toString() 查找幫助文檔Arrays類,學習使用此方法將字符串轉為字符串形式。將一個數組轉為字符串表示形式

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 查找幫助文檔System類,學習使用此方法拷貝數組中元素。將一個數組中的某些元素拷貝到另一個數組的指定位置。參數解釋:

Object src : 原數組

int srcPos : 從元數據的起始位置開始

Object dest : 目標數組

int destPos : 目標數組的開始起始位置

int length : 要copy的數組的長度

多維數組

數組中的每一個元素都是數組,這樣的數組就是多維數組(數組嵌套)。

經典案例

傳說,有位印度教宗師見國王自負虛浮,決定給他一個教訓。他向國王推薦了一種在當時尚無人知曉西洋棋。國王當時整天被一群溜須拍馬的大臣們包圍,百無聊賴,很需要通過遊戲方式來排遣鬱悶的心情。

國王對這種新奇的遊戲很快就產生了濃厚的興趣,高興之餘,他便問那位宗師,作為對他忠心的獎賞,他需要得到什麼賞賜。宗師開口說道:請您在棋盤上的第一個格子上放1粒麥子,第二個格子上放2粒,第三個格子上放4粒,第四個格子上放8粒……即每一個次序在後的格子中放的麥粒都必須是前一個格子麥粒數目的倍數,直到最後一個格子第64格放滿為止,這樣我就十分滿足了。

「好吧!」國王哈哈大笑,慷慨地答應了宗師的這個謙卑的請求。然而等到麥子成熟時,國王才發現,按照與宗師的約定,全印度的麥子竟然連棋盤一半的格子數目都不夠.這位宗師索要的麥粒數目實際上是天文數字。

這個天文數字到底有多大呢?我們用程序來計算一下:

看到結果了嗎?這個數字到底有多大呢?

有人估算:如果按100粒米的重量約2克,那總共約有3689萬億噸重!

精品推薦:

一起學JAVA——流程控制語句

一起學JAVA——運算符

一起學JAVA——進入Java的世界

編程技術筆記——Nginx反向代理和負載均衡

相關焦點

  • 零基礎java入門教程java數組常見操作最大值最小值和重載複習例題
    0基礎java入門 java數組的常見操作:獲取最值下面通過獲取最大值來舉一反三獲取最小值同樣的和咱們之前講的一樣,在開始先程序前,先不要直接就開始寫代碼,一定要先將要求和思路步驟先寫清楚,然後在通過這些要求步驟和思路來寫出代碼程序
  • PHP數組函數有哪些?
    php$array = array( "php基礎"=>"php", "java基礎"=>"java", "jsp基礎"=>"jsp");echo key($array); echo "<br>";echo current($array); echo "<br>";echo next($array); echo "<br>";echo end
  • Java中的函數與數組——第十二課
    >結論:Java中,數組都具有索引,索引實際上就是數組中每個存儲單元的編號;向數組中保存數據和取出數據,都是通過索引進行的;索引的特點是:從0開始,依次遞增;最大索引就是數組容量減一;>如果對數組的操作(賦值或者取值)沒有規律,那麼就不能使用循環來簡化;數組的內存原理(了解)java的內存組成數組的內存圖解需求1:畫出下面代碼執行的內存圖解:public static void main
  • 跟我學java編程—Java的二維數組結構可以這樣理解
    二維數組元素的訪問二維數組的元素通過兩個下標進行訪問,分別是行數組下標和列數組下標,例如:對於二維數組a,可通過a[i][j]進行訪問,其中i和j為數組a的下標。二維數組行數組的長度可通過a.length獲取,列數組的長度可通過a[i]. length獲取。
  • Java 中 Comparable 和 Comparator 比較
    為什麼可以不實現 equals(Object obj) 函數呢? 因為任何類,默認都是已經實現了equals(Object obj)的。 Java中的一切類都是繼承於java.lang.Object,在Object.java中實現了equals(Object obj)函數;所以,其它所有的類也相當於都實現了該函數。
  • VBA進階 | 數組基礎06: 與數組相關的函數——Array函數與IsArray函數
    Array函數語法Array函數返回一個Variant型數組,該數組由傳遞給該函數的參數組成。由Array函數返回的數組只可賦值給一個Variant型變量,不能賦值給已聲明為數組變量的變量。Array函數返回的數組中元素的順序與傳遞給函數的參數值的順序相同。Array函數總是返回Variant類型的數組,但元素的數據類型可以不同,這取決於傳遞給該函數的數值類型。
  • 如何在Java中創建數組列表
    ArrayList實現Java的List接口和Java的Collection的一部分。由於它們的功能和靈活性,它被廣泛使用。ArrayList的關鍵點An ArrayList是一個可調整大小的數組,也稱為動態數組。
  • 學Excel函數數組?看這一篇就夠了
    今天給大家詳細聊下Excel函數數組,篇幅較長,內容深,建議沐浴更衣,先馬後看。有人說數組是Excel函數的精華,也有人說數組是Excel函數的糟粕,男說男有理女說女有愛,各有各的理由——所以王源說世間沒有真正的感同身受。但不管怎麼說吧,數組作為Excel函數進階後的知識,是相當部分Excel使用者都繞不過去的一條河。
  • 尚學堂知識整理:java數組
    數組是什麼?數組是一個固定長度的數據結構,用於保存多個相同數據類型的值。在數據類型之後或在變量聲明中的變量名稱之後放置[],使變量成為數組。如果要聲明數組,可在上面的聲明中的數據類型之後放置[],如下所示 –創建數組數組創建的一般語法如下:以下代碼創建Arraylength長度類型為ArrayDataType的數組對象
  • Java語法 | 多維數組
    但是,在本篇,查老師將帶你學習一種更為高級的方式:多維數組。概述上一篇,我們學的用來存儲多個數據的數組,它們被稱為一維數組。多維數組,類似於前面學過的嵌套 if、嵌套循環。查老師覺得,你也可以把多維數組稱之為 "嵌套數組"。它的常見表現形式有:二維數組、三維數組。
  • java基礎之七:數組
    數組的價值在存儲和處理多個同類型的多個變量的時候派上用場,比如有三百個學生,定義變量表示他們的成績,可以考慮用三百個變量,工作量很大,用數組則只要一個變量,每個人記住自己的下標就好了。數組的要素:名稱,類型,下標(從0開始)數組要在定義的時候確定長度(大小),後面就可以使用了,如下的案例:
  • Java基礎——數組例題&二維數組
    數組例題:例題1:申請String字符串數組,並拿出裡面的數據。先申請一個String字符串,然後最裡面輸入要存儲的值,使用for循環申請變量i,i小於String數組的長度(.Length),然後列印String數組的第i個值就可以取出裡面的數組。
  • java之數組作為方法參數的使用
    各位小夥伴們大家好,這次小編要介紹的是java作為方法參數,返回值的使用。首先,小編要介紹的是java作為方法參數的使用。void main(String[] args){int[] array={1,2,34,78};//定義一個方法System.out.println(array);//地址值printArray(array);//(方法的調用)}/** 方法定義的三要素:* 1.返回值類型:只是進行列印,不需要進行計算,也沒有結果,用void* 2.方法名稱:printArray* 3.參數列表:必須有數組
  • 自從學會Java中的lambda表達式和函數式編程技巧,再也不用加班了!
    同時你還將了解lambda如何與作用域、局部變量、this 和super 關鍵字以及Java異常進行交互。注意,本教程中的代碼示例所使用的編譯環境是JDK 12(筆者在JDK1.8環境下測試也通過,var除外)。本教程不會詳細介紹那些你之前沒有學過(也可能學過)的非lambda的語言特性,但是我會使用它們來進行演示,比如:java.lang.Math類。
  • 像數組又不是數組:JS函數的參數列表到底是什麼?
    在之前介紹模擬函數重載效果的時候,我們看到JS中的函數中,其實有一個「隱形」的東西來存儲實參所有的實參,這個東西就是arguments對象。但在實際使用過程中它的使用方式和數組簡直一模一樣,用起來感覺就是數組,沒有任何毛病,但實際上它並不是一個數組。
  • C++、java 和 C 的區別
    一、基礎類型c++:** java:** C#:1.以java為準,c++裡面的int short long 像這樣的整型 一般都有unsigned 和signed的區分 ,這個跟java和c# 的區別比較大,但c#裡面有unit ulong ushort 這三種就相當於c++的修飾詞unsigned,當c++李明的變量類型定義unsigned,就默認是整數。
  • 【Excel VBA數組函數】LBound和UBound
    公眾號暫時調整為每周更新一篇,感謝各位小夥伴一如既往的關注和支持。發現自己的不足越多,越需要付出更多的努力,希望自己會越做越好。
  • java基礎案例之java語言組成和數據類型與強制類型轉換語法
    java語言組成包含:1:關鍵字,2:標識符。3:注釋。4:常量和變量。5:運算符 。 6:語句 7:函數 8:數組。java數據類型定義變量格式:數據類型 變量名 =初始化值;例如:int x =4;
  • java之數組長度的獲取與數組的遍歷
    各位小夥伴們大家好,這次小編要介紹的是java中數組長度的獲取與數組的遍歷,首先小編要介紹的是,數組長度的獲取,如何獲取一個數組的長度呢?獲取數組長度的格式:數組名稱.length。之後,將會出現一個int數字來代表數組的長度。
  • ArrayList,基於數組實現的有序列表
    2、EMPTY_ELEMENTDATA:在第二個和第三個構造函數中出現,出現在需要用到空數組的地方,即第二個構造函數指定的集合為空數組或第三個構造函數指定的容量為0。tip:從三個構造函數中可以看出,如果是第二種情況,使用了空數組EMPTY_ELEMENTDATA話,那麼不會返回默認的初始容量。