Java List 隨機取記錄

來源:互聯網
上載者:User

最近需要做一個隨機出廣告的功能,上篇部落格中說到了oracle 端的隨機辦法。

在這對Java List中怎麼隨機取數做一個分享:

其實List中沒有現成隨機取記錄的方法,但在Collections中有個shuffle方法可以實現“洗牌”的效果,所謂“洗牌”就是把List中的元素打亂重新排序。重新排列後的List再從頭取需要發記錄數,就相等於完成了隨機取數的效果,見代碼

import java.util.ArrayList;<br />import java.util.Collections;<br />import java.util.List;<br />public class TTL {<br />public static void main(String[] str) {<br />List<Integer> list = new ArrayList<Integer>();<br />for (int i = 0; i < 5; i++) {<br />list.add(i);<br />}<br />System.out.println("orginal List:");<br />for (Integer s : list) {<br />System.out.print(s);<br />}<br />System.out.println();</p><p>Collections.shuffle(list);<br />System.out.println("after shuffle List:");<br />for (Integer s : list) {<br />System.out.print(s);<br />}<br />}<br />}<br /> 

輸出結果:

 

orginal List:

01234

after shuffle List:

32041

 

 

shuffle的原理就是用了Collection中的swap,對List中的每一個元素實現隨機換位一次,這也就意味著這種隨機方式不適合對List內中很多記錄的隨機。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.