Collections中的shuffle()方法

Collections中的shuffle()方法<?xml version="1.0" encoding="UTF-8"?>
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 




转载于:https://www.cnblogs.com/ZhangJinkun/p/7bd49981490352cdde5e81a29322dd63.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值