第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

我想知道 system.out.println() 在這段代碼中做了什么

我想知道 system.out.println() 在這段代碼中做了什么

慕標(biāo)琳琳 2023-09-20 17:23:58
要反轉(zhuǎn)映射,使其不同的值成為鍵,并將其鍵添加到相應(yīng)值下的集合中,請(qǐng)groupingBy()在映射條目上使用。原始映射中的值必須正確實(shí)現(xiàn)equals()并hashCode()用作新哈希表中的鍵,這一點(diǎn)很重要。static <K, V> Map<V, Set<K>> invert(Map<? extends K, ? extends V> original) {  return original.entrySet().stream()    .collect(Collectors.groupingBy(      Map.Entry::getValue,       Collectors.mapping(Map.Entry::getKey, Collectors.toSet())    ));}如果你想對(duì)組進(jìn)行排序,你可以創(chuàng)建一個(gè)專門的“下游”收集器:static <K, V> Map<V, SortedSet<K>> invert(    Map<? extends K, ? extends V> original,     Comparator<? super K> order) {  Collector<K, ?, SortedSet<K>> toSortedSet =      Collectors.toCollection(() -> new TreeSet<>(order));  return original.entrySet().stream()    .collect(Collectors.groupingBy(      Map.Entry::getValue,       Collectors.mapping(Map.Entry::getKey, toSortedSet)    ));}
查看完整描述

3 回答

?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

首先,讓我們看一下代碼的輸出:


.****

..***

...**

....*

.....


作為字符串,這與:


.****\n..***\n...**\n....*\n.....\n

默認(rèn)情況下,在 Java 中使用System.out會(huì)寫入標(biāo)準(zhǔn)字符輸出流。當(dāng)您寫入此流時(shí),可以使用各種方法,包括System.out.print和System.out.println。調(diào)用print將輸出您提供給它的確切字符串,而調(diào)用println將輸出您提供給它的字符串,后跟一個(gè)新行(系統(tǒng)的行分隔符)。如果您調(diào)用System.out.println()(println不帶參數(shù)),您將輸出您提供的字符串("")并將輸出移動(dòng)到下一行。本質(zhì)上,這意味著刪除System.out.println()代碼中的調(diào)用將產(chǎn)生以下輸出:


.****..***...**....*.....

此輸出看起來(lái)與字符串完全相同。\n正如您所看到的,當(dāng)您只調(diào)用System.out.print和不調(diào)用時(shí),輸出中沒(méi)有換行符 ( ) System.out.println。


最后,讓我們看看您的代碼,使其更易于閱讀和理解。我正在使用 Java 11+ 功能String.repeat來(lái)極大地簡(jiǎn)化此處重復(fù)字符串的操作:


public static void main(String[] args) {

  for (int i = 1; i <= 5; i++) {

    System.out.println(".".repeat(i)+"*".repeat(5-i));

  }

}

輸出:


.****

..***

...**

....*

.....


這相當(dāng)于原始輸出。然而,閱讀和理解正在發(fā)生的事情會(huì)更清楚。假設(shè)您無(wú)權(quán)訪問(wèn)這些功能,您可以執(zhí)行以下操作:


for (int i = 1; i <= 5; i++) {

  for(int rpts = 0; rpts < i; rpts++) {

    System.out.print('.');

  }

  for(int rpts = i; rpts < 5; rpts++) {

    System.out.print('*');

  }

  System.out.println();

}

這段代碼也有相同的輸出。它的內(nèi)容與您的代碼片段沒(méi)有太大區(qū)別,因?yàn)槟拇a片段確實(shí)有正確的想法。然而,它的格式更加一致,這使得您自己和其他人更容易閱讀代碼。請(qǐng)注意重復(fù)如何用 name 進(jìn)行標(biāo)記rpts,并且(在兩個(gè)示例中)迭代變量都是整數(shù)。Java 程序員通常使用整數(shù)進(jìn)行迭代,因?yàn)槭褂玫?jié)省的空間bytes對(duì)于大多數(shù)應(yīng)用程序而言可以忽略不計(jì),并且整數(shù)涵蓋了您可能想要迭代的大多數(shù)值范圍。


查看完整回答
反對(duì) 回復(fù) 2023-09-20
?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

您的代碼的輸出是:


.****

..***

...**

....*

.....

如果沒(méi)有System.out.println();,輸出將是:


.****..***...**....*.....

System.out.println();對(duì)于循環(huán)的每次交互,都會(huì)在屏幕上打印一個(gè)新行字符。


查看完整回答
反對(duì) 回復(fù) 2023-09-20
?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊

歡迎來(lái)到堆棧溢出!

a 本身System.out.println()只會(huì)打印一個(gè)換行符,例如\n。如果您要向此語(yǔ)句添加參數(shù),它將打印您的參數(shù)以及換行符。

這是 JavaDocsprintln

通過(guò)寫入行分隔符字符串來(lái)終止當(dāng)前行。行分隔符字符串由系統(tǒng)屬性 line.separator 定義,并且不一定是單個(gè)換行符 ('\n')。

您鏈接的代碼將打印一定數(shù)量的.字符和一定數(shù)量的*字符,沒(méi)有任何換行符。然后,最后一個(gè)System.out.println();將打印一個(gè)換行符,并且循環(huán)將重新開始。

輸出:

.****
..***
...**
....*
.....


查看完整回答
反對(duì) 回復(fù) 2023-09-20
  • 3 回答
  • 0 關(guān)注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)