在這對Java List中怎么隨機取數(shù)做一個分享:
其實List中沒有現(xiàn)成隨機取記錄的方法,但在Collections中有個shuffle方法可以實現(xiàn)“洗牌”的效果,所謂“洗牌”就是把List中的元素打亂重新排序。重新排列后的List再從頭取需要發(fā)記錄數(shù),就相等于完成了隨機取數(shù)的效果,見代碼
[java]?view plain?copy
import?java.util.ArrayList;??
import?java.util.Collections;??
import?java.util.List;??
public?class?TTL?{??
public?static?void?main(String[]?str)?{??
List?list?=new?ArrayList();??
for?(int?i?=?0;?i?<?5;?i++)?{??
????????????list.add(i);??
????????}??
System.out.println("orginal?List:");??
for?(Integer?s?:?list)?{??
????????????System.out.print(s);??
????????}??
????????System.out.println();??
????????Collections.shuffle(list);??
System.out.println("after?shuffle?List:");??
for?(Integer?s?:?list)?{??
????????????System.out.print(s);??
????????}??
????}??
}??
輸出結(jié)果:
orginal List:
01234
after shuffle List:
32041
shuffle的原理就是用了Collection中的swap,對List中的每一個元素實現(xiàn)隨機換位一次,這也就意味著這種隨機方式不適合對List內(nèi)中很多記錄的隨機。