下面介紹一個Set相關筆試題的細節。
![Java中關於Set的一道細節筆試題](http://p2.ttnews.xyz/loading.gif)
題目:下面代碼輸出結果是?【中國軟件公司LC 筆試題】
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中還有一個函數可以獲取納秒精度的值:
“the current value of the running Java Virtual Machine's high-resolution time source, in nanoseconds”
返回 “正在運行的Java虛擬機的高精度時間源的當前值,以納秒(十億分之一秒)為單位”
如果對程序進行修改:
因為鍵不會重複,而Set是無序的。
所以結果是 123順序無法確定。這個時候選擇C。
閱讀更多 明明如月學長 的文章