小白求解,為什么我這個(gè)Set不能實(shí)現(xiàn)隨機(jī)輸出呢?
public?static?void?main(String[]?args) { Set<String>?set=new?HashSet(); String[]?string=new?String[]{"1","2","3"}; System.out.print("原數(shù)組為:"); for?(String?string2?:?string) { System.out.print(string2); } for?(String?string2?:?string) { set.add(string2); } System.out.println(); System.out.println("長(zhǎng)度為:"+set.size()); System.err.print("Set遍歷:"); for?(String?string2?:?set) { System.out.print(string2+"?"); } }
每次運(yùn)行結(jié)果都是 321 ,不是應(yīng)該每次都隨機(jī)嗎?
2016-08-26
首先,set集合是無(wú)序的,但是你要明白無(wú)序的原理是hash值不同導(dǎo)致存入與取出順序不同,實(shí)際上他是有序的,他在用hash+equals排序,多次運(yùn)行都是一個(gè)結(jié)果你放心,目測(cè)你聽(tīng)課只聽(tīng)前半句
2016-08-05
隨機(jī)應(yīng)該是說(shuō)你放入的數(shù)在set里的順序在不同編譯環(huán)境下是不能保證的,但是編譯器運(yùn)行時(shí)它也是按照一定的方法儲(chǔ)存的,所以每次遍歷結(jié)果都是一樣的。
如果要求順序可以用linkedhashset treeset 之類的
2016-08-04
其實(shí)是偽隨機(jī),你可以試著改一下數(shù)字,他應(yīng)該不會(huì)再像321這樣規(guī)律的倒序打印出來(lái),但是你新改的字符串還是會(huì)按一定的位置排列。