java一行代碼輸出數組的所有元素內容

2020-12-26 軟體開發領路人

如果要用java把一個數組的元素都輸出到控制臺的話,你要怎麼做呢?

是通過一個循環去循環數組中的各個元素,然後輸出嗎?

像不像二維數組

今天我要說的是,可以通過一行代碼就完成這個工作。是一樣什麼樣的代碼呢。

看我下面的代碼吧。

定義了數組之後就只是寫了一行代碼,那這樣能達到輸出數組所有元素這個目的嗎?看一下執行結果就知道了。

是達到我要的目的了。

是不是挺神奇?其實真沒那麼神奇。一起來看看源碼,看看這個Arrays.toString做了什麼吧。

其實他只是替我們做了循環的事情。

那如果是二維數組或者更多維數組的話,從上面源碼來看是無法輸出所有元素了。

試試看。

輸出的是內部數組的內存地址。沒有達到我們想要的效果啊。

那要怎麼辦呢?

不用擔心,java.util.Arrays這個類,又給我們提供了一個方法,就是針對上面這種情況的。是什麼方法呢?看下面的代碼。

這次就達到我們的目的了。

看看這個Arrays.deepToString是怎麼做到的吧。

代碼圖1
代碼圖2
代碼圖3
代碼圖4

代碼方法比較長,分開截了多張圖。代碼圖1中的方法,是我示例代碼調動的方法。在代碼圖1中調用了代碼圖2中定義的方法(代碼圖2、代碼圖3、代碼圖4三張圖整體是一個方法,為了展示方便,分拆成了三張圖。有興趣的朋友可以自己去源碼中查看),在代碼圖3中,可以看到,如果數組元素是列舉的這些類型的數組,則直接調用Arrays.toString。如果數組元素不是列舉的這些類型的數組,則會再調用自身方法(代碼圖2中定義的方法)。這種調用方式叫做遞歸。

就是通過這樣的一個方式達到了輸出多維數組的元素的目標。

java一行代碼輸出數組的所有元素內容就到這裡了。如果大家覺得有必要謝謝遞歸的話,就在評論區裡告訴我。

相關焦點

  • java刪除數組中重複元素
    package com.akfucc.zhidao;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List
  • 一起學JAVA——數組和函數
    之前我們介紹了java的數據類型、變量、流程控制等內容。今天我們高級數據類型——數組以及函數的作用。函數(方法)函數的定義函數就是一段有名字的代碼,可以完成某一特定功能。方法(函數)是java的最小代碼重用單位,方法(函數)是為了重用代碼。方法不能嵌套方法,不能在一個方法內部定義另外一個方法。可以在一個方法內部調用另外一個方法。
  • 一行JAVA代碼如何運行起來?
    不過JAVA語言的上手難度就比PHP、前端高很多了,所以今天我們給大家講解下一行JAVA代碼到底是如何運行起來的,JAVA後浪們可以以此為入門Java的基礎,開啟Java開發、人生贏家之路。Java是一種半解釋型語言,相對的有解釋型語言Python&PHP、編譯型語言C&C++。
  • java集合詳解合集
    從傳統意義上講,數組是我們的一個很好的選擇,前提是我們事先已經明確知道我們將要保存的對象的數量。一旦在數組初始化時指定了這個數組長度,這個數組長度就是不可變的,如果我們需要保存一個可以動態增長的數據(在編譯時無法確定具體的數量),java的集合類就是一個很好的設計方案了。集合類主要負責保存、盛裝其他數據,因此集合類也被稱為容器類。
  • 一文帶你入門Java Stream流,太強了
    Stream 就好像一個高級的迭代器,但只能遍歷一次,就好像一江春水向東流;在流的過程中,對流中的元素執行一些操作,比如「過濾掉長度大於 10 的字符串」、「獲取每個字符串的首字母」等。要想操作流,首先需要有一個數據源,可以是數組或者集合。
  • 二維數組中的查找(劍指 Offer 題解Java版)
    tpId=13&tqId=11154&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking&from=cyc_github題目描述給定一個二維數組,其每一行從左到右遞增排序
  • 大跌眼鏡:python print竟然不能輸出二進位內容
    我在這個團隊裡面最主要的工作就是寫python代碼了,大家在文章中看到的代碼,很多都是我寫出來的哦。前幾天收到一個朋友的私信,他使用python開發cgi程序(這個方向實在是比較冷門),在讀取png文件並輸出的時候,遇到了讓人無法理解的兩個bug,小編花了一上午的時間,各種查資料,終於幫他解決了問題。
  • Google 出品 Java 編碼規範,科學又權威,強烈推薦!
    縮進級別適用於代碼和注釋。(見4.1.2節中的代碼示例)4.3 一行一個語句每個語句後要換行。,類型界限中的&( <TextendsFoo&Bar>),catch塊中的管道符號( catch(FooException|BarExceptione)如果在賦值運算符處斷開,通常的做法是在該符號後斷開(比如=,它與前面的內容留在同一行)。這條規則也適用於foreach語句中的分號。方法名或構造函數名與左括號留在同一行。
  • java中utils方法 - CSDN
    集合與數組我們日常也需要經常使用,也需要對其進行判空:if (null == list || list.isEmpty()) {}ps: 數組、Map 集合與其類似上面代碼如字符串判空一樣寫起來都非常簡單
  • PHP數組合併之Excel讀的數據還能這麼處理 - 帶你玩轉PHP函數系列
    在PHP開發的時候,說到合併數組,我們通常想到的數組函數就是array_merge(),可是有時候我們會遇到這種情況,比如說讀取Excel文件的時候,獲取回來的數據是一行一行的數組,表頭也是單獨一行,這個時候,我們希望把表頭作為鍵名和表內容對應起來合併成一個 表頭=>內容 的數組,使每一行都能根據表頭取值
  • 阿里P8教你Java註解與反射
    和 Javadoc 不同,Java 標註可以通過反射獲取標註內容。在編譯器生成類文件時,標註可以被嵌入到字節碼中。Java 虛擬機可以保留標註內容,在運行時可以獲取到標註內容 。當然它也支持自定義 Java 標註。
  • leetcode專項刷題(數組)-子數組最大平均數/最大子序和/數組的度
    子數組最大平均數 I問題描述給定n個整數,找出平均數最大且長度為k的連續子數組,並輸出該最大平均數輸入:[1,12,-5,-6,50,3], k = 4輸出:12.75nums,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和輸入: [-2,1,-3,4,-1,2,1,-5,4],輸出: 6解釋: 連續子數組 [4,-1,2,1] 的和最大,為 6動態求和
  • Google 出品的 Java 編碼規範,強烈推薦,權威又科學!
    1.2 指南說明本文檔中的示例代碼並不作為規範。也就是說,雖然示例代碼是遵循Google編程風格,但並不意味著這是展現這些代碼的唯一方式。示例中的格式選擇不應該被強制定為規則。源文件基礎2.1 文件名源文件以其最頂層的類名來命名,大小寫敏感,文件擴展名為 .java。2.2 文件編碼:UTF-8源文件編碼格式為UTF-8。
  • 「JAVA」萬字長篇詳述字節碼對象與反射機制完成動態編程
    java命令時,該命令將會啟動一個JVM進程,在這個JVM進程中,會保存有該JVM創建的所有線程、變量、對象,這些線程、變量、對象會共享該JVM的內存區域。> clazz3 = Class.forName("java.util.Date");在上述的代碼案例中使用了通配符「?」,通配符「?」表示「任何類」,通配符的使用使得Class對象的類型更加寬泛。
  • Java8 中有趣酷炫的小技巧
    執行注釋大多數開發人員認為 注釋 永遠不會在程序中執行,並用於幫助代碼理解。; }} 程序輸出:wmyskxz is awesome! Java 允許使用 Unicode 字符而不進行編碼。這裡的 Unicode 字符 被 Java 編譯器解析為新行,因此可以理解為該 Unicode 字符後面出現的語句會在下一行被執行。
  • 碼學院 | 尋蹤:JAVA編碼格式
    stringSize(-i) + 1 : stringSize(i); char[] buf = new char[size]; getChars(i, size, buf); return new String(buf, true);}左右滑動查看完整代碼代碼中把i拆成一個一個字符,共5個字符,組成字符數組char[],形成一個新的字符串輸出,當然了
  • Java基礎面試題簡單總結
    中的保留字,現在沒有在java中使用11、數組有沒有length()這個方法?39、說出ArrayList,Vector, LinkedList的存儲性能和特性答:ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大於實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作
  • Java高級開發必會的50個性能優化的細節(珍藏版)
    在JAVA核心API中,有許多應用final的例子,例如java、lang、String,為String類指定final防止了使用者覆蓋length()方法。另外,如果一個類是final的,則該類所有方法都是final的。java編譯器會尋找機會內聯(inline)所有的final方法(這和具體的編譯器實現有關),此舉能夠使性能平均提高50%。
  • 私人收藏:這十大java開源庫深得人心!
    【IT168 評論】庫是開源生態系統的重要組成部分,開放原始碼的庫的背後通常站著一個偉大的社區。畢竟,一個沒有社區支持和發展的庫難以存在。以下這十大開源Java庫讓程式設計師不必在每次編寫代碼時都從頭開始,這些庫可以讓程式設計師儘可能多的重用代碼!使用這些庫可以節省時間,因為不必自己執行每一行代碼。
  • 介紹一款極為好用的java代碼生成器
    項目簡介JNPF是種專為提高開發效率而生的低代碼二次開發框架以及基於代碼生成器的java開發平臺。為簡單的增刪改查、複雜的表單、簡單的事務操作提供了完全自動化的開發平臺。項目特色在線解析拖拽式的表單設計器,快速設計使用自動生成表單代碼,清晰可讀易擴展自動生成三層架構的完整項目和代碼