Java中關於Set的一道細節筆試題

下面介紹一個Set相關筆試題的細節。

Java中關於Set的一道細節筆試題


題目:下面代碼輸出結果是?【中國軟件公司LC 筆試題】

Java中關於Set的一道細節筆試題

A、 123 B、 321 C、 123順序無法確定 D、 以上答案都不對


點撥:

程序“期待”的輸出結果是C 123順序無法確定。

因為大家都知道Map中健是Set,值是Collection,因而map.entrySet()產生的類型是Set,因為能用foreach(),而Set順序是隨機的,因而輸出的123順序無法確定,但是現在計算機的運行速度很快,因而極有可能System.currentTimeMillis() (獲取系統時間戳,毫秒值) 相等,但是Set是不允許重複的,這樣Map的值後面就會覆蓋前面的值,因而再機器上測試時只輸出3,應該選擇D


我們知道Java中還有一個函數可以獲取納秒精度的值:

Java中關於Set的一道細節筆試題

“the current value of the running Java Virtual Machine's high-resolution time source, in nanoseconds”
返回 “正在運行的Java虛擬機的高精度時間源的當前值,以納秒(十億分之一秒)為單位”

如果對程序進行修改:

Java中關於Set的一道細節筆試題

因為鍵不會重複,而Set是無序的。

所以結果是 123順序無法確定。這個時候選擇C。

Java中關於Set的一道細節筆試題


分享到:


相關文章: