更新時間:2020-02-27 11:52:19 來源:動力節點 瀏覽2944次
假定我們現在想寫一個方法,同時不希望它僅僅返回一樣東西,而是想返回一系列東西。此時,象C和C++這樣的語言會使問題復雜化,因為我們不能返回一個數組,只能返回指向數組的一個指針。這樣就非常麻煩,因為很難控制數組的“存在時間”,它很容易造成內存“漏洞”的出現。
Java采用的是類似的方法,但我們能“返回一個數組”。當然,此時返回的實際仍是指向數組的指針。但在Java里,我們永遠不必擔心那個數組的是否可用——只要需要,它就會自動存在。而且垃圾收集器會在我們完成后自動將其清除。
flavorSet()方法創建了一個名為results的String數組。該數組的大小為n——具體數值取決于我們傳遞給方法的自變量。隨后,它從數組flav里隨機挑選一些“香料”(Flavor),并將它們置入results里,并最終返回results。返回數組與返回其他任何對象沒什么區別——最終返回的都是一個句柄。至于數組到底是在flavorSet()里創建的,還是在其他什么地方創建的,這個問題并不重要,因為反正返回的僅是一個句柄。一旦我們的操作完成,垃圾收集器會自動關照數組的清除工作。而且只要我們需要數組,它就會乖乖地聽候調遣。
另一方面,注意當flavorSet()隨機挑選香料的時候,它需要保證以前出現過的一次隨機選擇不會再次出現。為達到這個目的,它使用了一個無限while循環,不斷地作出隨機選擇,直到發現未在picks數組里出現過的一個元素為止(當然,也可以進行字串比較,檢查隨機選擇是否在results數組里出現過,但字串比較的效率比較低)。若成功,就添加這個元素,并中斷循環(break),再查找下一個(i值會遞增)。但假若t是一個已在picks里出現過的數組,就用標簽式的continue往回跳兩級,強制選擇一個新t。用一個調試程序可以很清楚地看到這個過程。
main()能顯示出20個完整的香料集合,所以我們看到flavorSet()每次都用一個隨機順序選擇香料。為體會這一點,最簡單的方法就是將輸出重導向進入一個文件,然后直接觀看這個文件的內容。
以上就是動力節點Java培訓機構小編介紹的“Java基礎教程:Java返回數組”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習