溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么打印數組

發布時間:2021-10-09 15:45:19 來源:億速云 閱讀:273 作者:iii 欄目:編程語言

這篇文章主要講解了“怎么打印數組”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么打印數組”吧!

怎么打印數組

“哥,之前聽你說,數組也是一個對象,但 Java 中并未明確的定義這樣一個類?!笨磥砣糜性谟眯牡貙W習。

“是的,因此數組也就沒有機會覆蓋 Object.toString()  方法。如果嘗試直接打印數組的話,輸出的結果并不是我們預期的結果?!蔽医又玫脑捓^續說。

“那怎么打印數組呢?”三妹心有靈犀地把今天的核心問題提了出來。

“首先,我們來看一下,為什么不能直接打印數組,直接打印的話,會出現什么問題?!?/p>

來看這樣一個例子。

String [] cmowers = {"沉默","王二","一枚有趣的程序員"}; System.out.println(cmowers);

程序打印的結果是:

[Ljava.lang.String;@3d075dc0

[Ljava.lang.String; 表示字符串數組的 Class 名,@ 后面的是十六進制的  hashCode——這樣的打印結果太“人性化”了,一般人表示看不懂!為什么會這樣顯示呢?查看一下 java.lang.Object 類的 toString()  方法就明白了。

public String toString() {     return getClass().getName() + "@" + Integer.toHexString(hashCode()); }

再次證明,數組雖然沒有顯式定義成一個類,但它的確是一個對象,繼承了祖先類 Object 的所有方法。

“哥,那為什么數組不單獨定義一個類來表示呢?就像字符串 String 類那樣呢?”三妹這個問題讓人頭大,但也好解釋。

“一個合理的說法是 Java 將其隱藏了。假如真的存在這么一個類,就叫 Array.java  吧,我們假想一下它真實的樣子,必須得有一個容器來存放數組的每一個元素,就像 String 類那樣?!币贿吇卮鹑?,我一邊打開了 String 類的源碼。

public final class String     implements java.io.Serializable, Comparable<String>, CharSequence {     /** The value is used for character storage. */     private final char value[]; }

“最終還是要用類似一種數組的形式來存放數組的元素,對吧?這就變得很沒有必要了,不妨就把數組當做是一個沒有形體的對象吧!”

“好了,不討論這個了?!蔽遗略掝}扯遠了,扯到我自己也答不出來就尷尬了,趕緊把三妹的思路拽了回來。

“我們來看第一種打印數組的方法,使用時髦一點的 Stream 流?!?/p>

第一種形式:

Arrays.asList(cmowers).stream().forEach(s -> System.out.println(s));

第二種形式:

Stream.of(cmowers).forEach(System.out::println);

第三種形式:

Arrays.stream(cmowers).forEach(System.out::println);

打印的結果如下所示。

沉默 王二 一枚有趣的程序員

沒錯,這三種方式都可以輕松勝任本職工作,并且顯得有點高大上,畢竟用到了 Stream,以及 lambda 表達式。

“當然了,也可以使用比較土的方式,for 循環。甚至 for-each 也行?!?/p>

for(int i = 0; i < cmowers.length; i++){     System.out.println(cmowers[i]); }  for (String s : cmowers) {     System.out.println(s); }

“哥,你難道忘了上一篇在講 Arrays 工具類的時候,提到過另外一種方法 Arrays.toString()  嗎?”三妹看我一直說不到點子上,有點著急了。

“當然沒有了,我認為 Arrays.toString() 是打印數組的最佳方式,沒有之一?!蔽业那榫w有點激動。

Arrays.toString() 可以將任意類型的數組轉成字符串,包括基本類型數組和引用類型數組。該方法有多種重載形式。

怎么打印數組

使用 Arrays.toString() 方法來打印數組再優雅不過了,就像,就像,就像蒙娜麗莎的微笑。

(三妹看到這么一副圖的時候忍不住地笑了)

“三妹,你不要笑,來,懷揣著愉快的心情看一下代碼示例?!?/p>

String [] cmowers = {"沉默","王二","一枚有趣的程序員"}; System.out.println(Arrays.toString(cmowers));

程序打印結果:

[沉默, 王二, 一枚有趣的程序員]

哇,打印格式不要太完美,不多不少!完全是我們預期的結果:[] 表明是一個數組,, 點和空格用來分割元素。

“哥,那如果我想打印二維數組呢?”

“可以使用 Arrays.deepToString() 方法?!?/p>

String[][] deepArray = new String[][] {{"沉默", "王二"}, {"一枚有趣的程序員"}}; System.out.println(Arrays.deepToString(deepArray));

打印結果如下所示。

[[沉默, 王二], [一枚有趣的程序員]]

“說到打印,三妹,哥給你提醒一點。阿里巴巴的 Java 開發手冊上有這樣一條規約,你看?!?/p>

怎么打印數組

“什么是 POJO 呢,就是 Plain Ordinary Java Object 的縮寫,一般在 Web  應用程序中建立一個數據庫的映射對象時,我們稱它為 POJO,這類對象不繼承或不實現任何其它 Java 框架的類或接口?!?/p>

“對于這樣的類,最好是重寫一下它的 toString() 方法,方便查看這個對象到底包含了什么字段,好排查問題?!?/p>

“如果不重寫的話,打印出來的 Java 對象就像直接打印數組的那樣,一串誰也看不懂的字符序列?!?/p>

“可以借助 Intellij IDEA 生成重寫的 toString() 方法,特別方便?!?/p>

“好的,哥,我記住了。以后遇到的話,我注意下。你去休息吧,我來敲一下你提到的這些代碼,練一練?!?/p>

“OK,我走,我走?!?/p>

感謝各位的閱讀,以上就是“怎么打印數組”的內容了,經過本文的學習后,相信大家對怎么打印數組這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女