• Collections中的shuffle()方法


    Collections中的shuffle()方法
    shuffle() 是 Collections 中的静态方法 ,它用于将一个 list 集合中的元素顺序进行打乱 ,类似于洗牌的过程,而且shuffle的

    英文含义就是 “洗牌” 。shuffle()方法常用于类似 洗牌要打乱顺序 的问题。

    eg: 模拟洗牌

    import java.util.*;

    public class Card {
         public static enum Face {
               红心, 方块 , 草花, 黑桃
         };

         public static enum Deck {
               one, two, three, four, five, six, seven, eight, nine, ten , eleven, tweleve, thirteen
         };

         /**
          *
          * 私有变量将从枚举Face, Deck中获得值,那么其返回值应该定义成枚举( enum)吗? 是的,但是需要使用Face face, Deck
          * deck;
          *
          */
         private Face face;
         private Deck deck;

         public Card(Face faceVal, Deck deckVal) {
               face = faceVal;
               deck = deckVal;
         }

         public String toString() {
               // return String.format("%s of %s", deck, face);
               return String. format(face + " " + deck);
         }

         public static void main(String argc[]) {
              Card card[] = new Card[52];
               int counter = 0;

               for (Card.Face faceVal : Card.Face. values()) {
                   for (Card.Deck deckVal : Card.Deck.values()) {
                       card[counter++] = new Card(faceVal, deckVal);
                  }
              }

              List<Card> list = Arrays. asList(card); // 将数组转化成collection

              Collections. shuffle(list); // 利用集合(collections)的静态方法,打乱list集合顺序
              Card[] card2 = new Card[52]; // 创建新数组
              list.toArray(card2); // 将collection转换成数组,以便输出

               for (Card c : card2) {
                  System. out.println(c + " ");
              }
         }
    }
    输出结果:
    黑桃 two
    草花 ten
    草花 nine
    草花 seven
    黑桃 eight
    方块 one
    黑桃 tweleve
    黑桃 thirteen
    草花 one
    黑桃 nine
    黑桃 six
    草花 six
    黑桃 four
    草花 eight
    红心 nine
    红心 one
    草花 four
    红心 five
    红心 tweleve
    黑桃 eleven
    黑桃 three
    方块 ten
    方块 five
    方块 four
    红心 eight
    红心 four
    草花 thirteen
    红心 thirteen
    方块 two
    方块 six
    草花 eleven
    红心 six
    草花 three
    红心 two
    黑桃 one
    方块 nine
    红心 eleven
    红心 ten
    红心 three
    方块 tweleve
    草花 five
    方块 eleven
    黑桃 five
    黑桃 seven
    方块 eight
    黑桃 ten
    草花 two
    方块 seven
    草花 tweleve
    红心 seven
    方块 three
    方块 thirteen 




  • 相关阅读:
    委托的BeginInvoke和EndInvoke
    HTTP Post
    显示一个托盘
    sql语句
    在C++ 中 如何调用 C# 写的DLL(转载)
    WinForm-MenuStrip
    rsync定时同步和rsync+sersync实时同步
    innobackupex自动备份数据库脚本
    innobackupex备份恢复mysql
    gitlab安装和基本使用
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/7bd49981490352cdde5e81a29322dd63.html
Copyright © 2020-2023  润新知