看板 java 關於我們 聯絡資訊
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
luoqr:哪個地方有違背你說的HashSet的定義? 12/13 19:31
etman395:循序增加數字 可是add的數字卻沒有每行就照順序印出來 12/13 20:28
etman395:add 123456 可是println六次 123456 順序都亂跳 為何? 12/13 20:37
TonyQ:HashSet 沒有保證順序. 12/13 22:33
etman395:是喔~所以新增一個元素後~原本的元素排序還會打亂喔?? 12/13 23:14
etman395:喔~我應該用LinkedHashSet 12/13 23:28