StackOverflow Java API 問題 Top10

2021-02-25 ImportNew

(點擊上方公眾號,可快速關注)

來源:ImportNew - 溫布利往事

Stack Overflow 是一個大型的編程知識庫。在 Stack Overflow 中已經有數以百萬計的問題,並且很多答案有著很高的質量。這就是為什麼 Stack Overflow 的答案經常位於 Google 搜索結果的頂部。

儘管 Stack Overflow 上很多問題已經有了答案,每天還是會有很多問題被提出,很多問題仍然沒有被回答或者沒有獲得滿意的答案。那麼當 Stack Overflow 不能解決問題時如何去尋找答案。

隨著成千上萬的程式設計師使用 Java APIs 並在 Github 上分享他們的項目,這些項目能夠給我們提供很好的例子來展示如何使用 Java APIs。Java API Example 是一個搜索門戶,它提供了一些非常受歡迎的 Java APIs 的示例代碼。

在這篇文章中,將探討使用開原始碼(jExample)是否能夠回答排序前列的 API 相關問題。API 相關問題指的是如何使用 APIs 解決任務的問題。我們對 Stack Overflow 排在前面的問題進行了分析。

對於每一個問題,最佳答案顯示在最前面,然後是從 Java API examples (jExample) 中給出的解決方法。

1. 遍歷 HashMap

採納的答案給出了這樣的解決方法:

Map<String, Object> map = ...; 

for (String key : map.keySet()) { 

     // ... 

}

如果我們在 jExample 上搜索 「HashMap」 並跳轉到 java.util.HashMap 的示例頁面。然後點擊最常見的一種方法 – entry(),我們可以快速得到如下的一個例子:

這個例子向我們展示了如何使用HashMap HashMap.entrySet()、Entry.getKey() 和 Entry.getValue() 來遍歷HashMap。

2. 由數組創建 ArrayList

這個問題,答案中提供了多種方法。這裡是排名前三的方法:

// Method 1

new ArrayList(Arrays.asList(array))

// Method 2

ImmutableList.of("string", "elements");

// Method 3

List l1 = Lists.newArrayList(anotherListOrCollection);

上面的三個方法能夠在 jExample 中找到:

方法 1:

方法 2:

方法 3:

如果我們不知道 ImmutableList 類就很難發現第二種方法。然而,如果我們去查看 ImmutableList 的示例頁面,我們會學到這個類很多其它的用法。

3. 怎樣在一個範圍內產生一個隨機整數?

採納的答案給出的解決方法是:

int randomNum = rand.nextInt((max - min) + 1) + min;

如果我們查看 java.util,Random 類的頁面,我們也能夠找到一種類似的方法:

4. 怎樣將 String 轉換為 int 類型?

最優的答案:

int foo = Integer.parseInt("1234");

5. 怎樣將 InputStream 轉換為 byte array?

採納的答案:

InputStream is; 

byte[] bytes = IOUtils.toByteArray(is);

6. 怎樣產生一個 MD5 哈希?

答案提到了 MessageDigest。

7. Java 如何創建一個文件和寫入一個文件?

創建一個文本文件-方法 1

PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8"); writer.println("The first line"); 

writer.println("The second line"); 

writer.close();

創建一個文本文件-方法 2

List lines = Arrays.asList("The first line", "The second line"); 

Path file = Paths.get("the-file-name.txt"); 

Files.write(file, lines, Charset.forName("UTF-8"));

jExample 中找到的例子:

方法 1.

方法 2.

方法 3.

8. Java 讀取一個文本文件的最好方式?

BufferedReader br = new BufferedReader(new FileReader("file.txt")); 

try {

   StringBuilder sb = new StringBuilder();

   String line = br.readLine();

   while (line != null) {

      sb.append(line);

      sb.append(System.lineSeparator());

      line = br.readLine(); 

   } 

   String everything = sb.toString(); 

} finally { 

   br.close(); 

}

jExample 中的例子: 

9. 怎樣從 java.util.Date轉換為XMLGregorianCalendar?

採納的答案:

GregorianCalendar c = new GregorianCalendar(); 

c.setTime(yourDate); XMLGregorianCalendar date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);

10. 如何檢查一個字符串是否為數字?

採納的答案建議使用 Apache Commons Lang 中的 StringUtils.isNumeric。

這個答案的示例代碼可能沒必要給出,因為這段代碼只有一行。而且,如果查看 StringUtils 的頁面,可以看到 StringUtils 最常用的方法列表。這個列表按照流行的程度排序。下面是這份列表的一個快照:

總結

我找到了 Stack Overflow 上最熱門 10 個問題的全部示例代碼。然而,jExample 要求用戶擁有一定的知識水平並且能夠想到大概是什麼 API 類。有些答案可能並不明顯,不過 jExample 為使用目標 API 類提供了補充信息。側邊欄的相關類和常用方法對於查看相關 API 類和目標 API 類的重要方法是很有用處的。

【關於投稿】

如果大家有原創好文投稿,請直接給公號發送留言。

① 留言格式:
【投稿】+《 文章標題》+ 文章連結

② 示例:
【投稿】《不要自稱是程式設計師,我十多年的 IT 職場總結》:http://blog.jobbole.com/94148/

③ 最後請附上您的個人簡介哈~

看完本文有收穫?請轉發分享給更多人

關注「ImportNew」,提升Java技能

相關焦點

  • StackOverflow 上面最流行的 7 個 Java 問題!
    一、分支預測問題連結:https://stackoverflow.com/questions/11227809/why-is-it-faster-to-process-a-sorted-array-than-an-unsorted-arrayStackOverflow上最多投票的一個Java問題是:為什麼處理一個排序數組要比非排序數組快的多
  • StackOverflow 上面最流行的 7 個 Java 問題!| 值得一看
    一、分支預測問題連結:https://stackoverflow.com/questions/11227809/why-is-it-faster-to-process-a-sorted-array-than-an-unsorted-arrayStackOverflow上最多投票的一個
  • Stackoverflow問答:Java是傳值還是傳引用?
    來自:並發編程網 - ifeve.com原文:http://stackoverflow.com
  • Stack Overflow: 我們如何賺錢
    我們不在乎,原因在這兒:https://stackoverflow.blog/2016/02/why-stack-overflow-doesnt-care-about-ad-blockers/ 。Stack Overflow 的廣告現在是怎麼樣的呢?簡而言之,我們不會增加廣告的數量,而是去改善現有廣告的質量。
  • StackOverflow:7個你從未見過的Java問題最佳答案
    對具體的問題,它能幫我們找到最有用的答案,並且我們也可以從上面學習新的知識。下面的內容,通過這些最常見的JAVA問題與答案,並著重的標記出我們找到的精華問題。即便你是一個經驗豐富的開發人員,這些也是值得去學習的。JAVA問題縱覽JAVA是StackOverflow上 第二流行的標籤 ,有超過100萬個問題與JAVA有關。
  • 用StackOverflow訪問數據實現主成分分析(PCA)
    rstudio :: conf 2018https://www.rstudio.com/resources/videos/understanding-pca-using-shiny-and-stack-overflow-data/高維數據此次分析使用的是去年
  • Java學習必不可少的十大網站
    這是我為學習java的同學們準備的網站集合。這些網站提供新聞,常見問題或訪談問題的答案,精彩的講座等。質量是好的網站的關鍵因素。我認為它們都具有最高的質量。在下文中,我還將分享如何使用這些網站進行學習或娛樂。1.
  • java集合容器之Stack
    從名字看他就是一個stack,因此具有數據結構中棧的一般特性(後進先出),平時用起來相對較多一點,但是也是非常簡單。這篇文章我們將從源碼的角度來分析一下Stack。OK,開始今天的文章。一、認識StackStack繼承自Vector。底層是通過數組實現的。
  • 重學Java 設計模式:實戰外觀模式
    場景模擬工程itstack-demo-design-10-00└── src ├── main │ ├── java │ │ └── org.itstack.demo.design │ │ ├
  • Java Top 100熱門問答(Stackoverflow)
    Creating a memory leak with Java [closed] 用戶AutumnLight正在翻譯該問題Why is printing 「B」 dramatically slower than printing 「#」?
  • Java 生成隨機數的 5 種方式,你知道幾種?
    關注公眾號Java技術棧回復 java 獲取更多 Java 工具類教程。 不是直接用 實例化,而是第一次使用其靜態方法 得到 實例,然後調用 類提供的方法獲得各種隨機數。 使用: 結果: 4. java.Security.SecureRandom 也是繼承至 java.util.Random。
  • Stack Overflow 調查顯示:Rust 是最受歡迎的程式語言
    來自:insights.stackoverflow
  • Java Thread 那些事
    本文只聚焦JVM層面的線程模型,不考慮和真實的作業系統Thread模型掛鈎(由於篇幅有限,本文不會介紹Thread dump結構,也不會介紹調優過程中對工具的綜合使用,如ps,perf.top,iostat,jstack,TDA plugin,Thread inspector.如果有問題,歡迎大家留言交流)。
  • StackOverflow 發布 2016 年開發者調查報告
    via:stackoverflow.com作為一個開發者你有什麼想說的?畢竟有些調查比較顛覆我們的想法~
  • smart-doc 1.9.4 發布,Java 零註解 API 文檔生成工具
    smart-doc是一款同時支持java restful api和apache dubbo rpc接口文檔生成的工具
  • smart-doc 2.0.2 發布,Java 零註解 API 文檔生成工具
    smart-doc 是一款同時支持 java restful api 和 Apache Dubbo rpc 接口文檔生成的工具,smart-doc 顛覆了傳統類似 swagger 這種大量採用註解侵入來生成文檔的實現方法
  • smart-doc 2.0.1 發布,Java 零註解 API 文檔生成工具
    smart-doc是一款同時支持java restful api和apache dubbo rpc接口文檔生成的工具
  • smart-doc 1.9.9 發布,Java 零註解 API 文檔生成工具
    smart-doc是一款同時支持java restful api和apache dubbo rpc接口文檔生成的工具
  • String是java的基礎變量嗎?
    什麼意思看不起我?咦,有點模糊?此時面試官的問題宛如一句sql,我那可憐的單核大腦超頻的執行著這個單線程任務,同時不斷的列印出日誌:「嗯...」,"應該...","那個...",「我記得...」,"額..."