Re: [問題] 樂透不能重複問題

看板java作者 (聖子到)時間17年前 (2008/12/13 18:44), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串9/9 (看更多)
import java.util.HashSet; import java.util.Set; public class NewClass { public static void main(String args[]){ Set<Integer> s = new HashSet<Integer>(); int ball,sum = 46; while(s.size()<6){ s.add((int)((Math.random()*sum)+1)); System.out.println(s); } } } 請問一下喔 我故意把System.out.println(s);放在while裡面去觀察每次增加一個亂數後 HashSet s的集合變化 可是HestSet特性不是不重覆不且不會排序順序就一直往下增加下去? 為什麼印出來後 結果卻是像這樣 順序亂掉 [37] [35, 37] [35, 37, 40] [35, 37, 8, 40] [35, 37, 8, 40, 44] [1, 35, 37, 8, 40, 44] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.110.84.96

12/13 19:31, , 1F
哪個地方有違背你說的HashSet的定義?
12/13 19:31, 1F

12/13 20:28, , 2F
循序增加數字 可是add的數字卻沒有每行就照順序印出來
12/13 20:28, 2F

12/13 20:37, , 3F
add 123456 可是println六次 123456 順序都亂跳 為何?
12/13 20:37, 3F

12/13 22:33, , 4F
HashSet 沒有保證順序.
12/13 22:33, 4F

12/13 23:14, , 5F
是喔~所以新增一個元素後~原本的元素排序還會打亂喔??
12/13 23:14, 5F

12/13 23:28, , 6F
喔~我應該用LinkedHashSet
12/13 23:28, 6F
文章代碼(AID): #19Gv89NM (java)
討論串 (同標題文章)
文章代碼(AID): #19Gv89NM (java)