獲得隨機資料的對應場景是:我是乙個增刪改查的碼畜,接到了乙個任務。我面對的資料是故事服務,故事有type型別,每個type比如joke笑話下面還有一堆的笑話元資料。如果我對資料查詢的時候就是乙個type對應乙個集合。所有type的集合加起來,資料量不大只有10萬條左右。第一次我想獲得一條故事資料,第二次再次獲取資料要保證資料type和故事的元資料不同,達到type和故事元資料隨機
type 指向 list的map的集合
//全域性存放故事的id集合
static map> storytypemap = new hashmap<>();
第一步要在map的key隨機獲得, randomsubtype是根據map的key集合的大小生成的隨機數
storytypemap.get(randomsubtype);
下面是整個方法的**因為key指向的list,再次根據list集合大小生成隨機數,也就是隨機下標。
該方法的步驟:
獲得隨機key;
根據隨機key獲得對應的list;
根據list.size()隨機乙個下標index出來。這樣就達到了,map中的key和list全部隨機。
querysubtypeflag=false;
//根據type獲取對應sbutype集合
listsubtypelist = countstory(queryparam.gettype());
listidlist = new arraylist<>();
//防止進入死迴圈,只允許有限次數的操作
int index=0;
do index++;
} while((idlist == null || idlist.size() == 0) && index < 50);
隨機數獲得
要獲得乙個隨機整數,需要乙個函式,以及給他乙個初值。函式為srand 需要標頭檔案 一般情況下我們使用當前系統的時間的 秒數作為初值的,因為這樣的值一般情況下是不會相同。需要標頭檔案 include for time include for srand and rand include for ti...
mysql中取隨機資料
rand在手冊裡是這麼說的 rand rand n 例 如下 複製 select from table name order by rand limit 5 返回在範圍0到1.0內的隨機浮點值。如果乙個整數引數n被指定,它被用作種子值。如下 複製 mysql select rand 0.5925 m...
生成隨機資料
生成隨機資料 一 生成int型資料 簡單地生成n個隨機資料 數字大小在int範圍內 include include include int main 每次執行該程式得到的隨機數都是一樣的,因為種子相同 改變種子,每次執行程式可以得到不同的隨機數 得到種子需要乙個函式srand m 引數m決定了種子,...