亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

改組數組(Java)

改組數組(Java)

呼如林 2019-04-26 18:19:01
我試圖在一個數組中隨機亂洗整數。這似乎很簡單,但我必須將它們洗牌以使它們仍然保持特定的順序(奇數,偶數,奇數,偶數等)。例如,如果原始數組包含[1,2,3,4,5,6,7,8],則混洗數組可能看起來像[5,8,7,4,1,6,3,2],但始終保持相同的交替順序,從奇數開始。謝謝您的幫助。順便說一句,這不是我確切的功課問題。我只想弄清楚如何做到這一點,這樣我才能完成我的作業。我不知道從哪里開始。
查看完整描述

4 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

我可能會:

  1. 將ODD索引位置的所有元素抓取到一個單獨的數組中并隨機播放

  2. 將EVEN索引位置的所有元素抓取到一個單獨的數組中并隨機播放; 然后

  3. 將它們拼接在一起


查看完整回答
反對 回復 2019-05-15
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

Collections.shuffle(Arrays.asList(array));

隨著數組[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
我得到輸出[9, 5, 8, 2, 0, 7, 4, 3, 6, 1]

需要注意的是,它無法與原始數組一起使用,int[]不會起作用Integer[]


查看完整回答
反對 回復 2019-05-15
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊


改變陣列的一種方法是“隨機排序”項目。


例如,如果您使用的是Java 8或更高版本,則可以提供一個排序隔離區作為下面顯示的lambda,它在排序操作期間在每次迭代時返回正或負索引以獲得混洗結果:


ArrayList<Integer> list = new ArrayList<>();

Random random = new Random();


/* Ordered input list */

list.add(1);

list.add(2);

list.add(3);

list.add(4);

list.add(5);


/* Apply random sorting behavior to achieve obtain a shuffled array */

Collections.sort(list, (Integer a, Integer b) -> {

    /* Obtain random number between 0 - 1 */

    Integer randomValue = random.nextInt(1);


    /* Return random positive or negative value which causes "shuffled" 

    sort */

    return randomValue == 1 ? 1 : -1;

});


/* list is now shuffled */


查看完整回答
反對 回復 2019-05-15
  • 4 回答
  • 0 關注
  • 471 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號