Java——集合(模擬斗地主洗牌和發牌進行排序)

//改進版,沒有進行按牌的地位從小到大排序
package com.yy.test;import java.util.ArrayList;
import java.util.Collections;public class Test2 {/***  * A:案例演示* 模擬斗地主洗牌核發牌,牌沒有排序* * 分析:* 1,買一副撲克,其實就是自己創建一個集合對象,將撲克牌存儲進去* 2,洗牌     shuffle方法* 3,發牌* 4,看牌* */public static void main(String[] args) {//1,買一副撲克,其實就是自己創建一個集合對象,將撲克牌存儲進去String [] num = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};String [] color = {"紅桃","黑桃","方片","梅花"};ArrayList<String> poker = new ArrayList<>();//拼接花色和數字for (String s1 : color) {for (String s2 : num) {poker.add(s1.concat(s2));       //s1.concate(s2) :連接s1和s2兩個字符串}}
//      System.out.println(poker);              //打印52張牌
//      System.out.println(poker.size());       //查看一共有多少張牌poker.add("小王");                        //添加小王poker.add("大王");                        //添加大王//2,洗牌Collections.shuffle(poker);
//      System.out.println(poker);//3,發牌ArrayList<String> 高進 = new ArrayList<>();ArrayList<String> 龍五 = new ArrayList<>();ArrayList<String> 諺語 = new ArrayList<>();ArrayList<String> 底牌 = new ArrayList<>();for(int i = 0 ;i<poker.size();i++){if(i >= poker.size() - 3){底牌.add(poker.get(i));               //將三張底牌存儲在底牌集合中}else if(i % 3 == 0){高進.add(poker.get(i));}else if(i % 3 == 1){龍五.add(poker.get(i));}else {諺語.add(poker.get(i));}}//4,看牌System.out.println(高進);System.out.println(龍五);System.out.println(諺語);System.out.println(底牌);}}
//完整版,進行按牌的地位從小打到大進行排序
package com.yy.test;import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;public class Test3 {/***  * A:案例演示* 模擬斗地主洗牌核發牌,牌沒有排序* * 分析:* 1,買一副撲克,其實就是自己創建一個集合對象,將撲克牌存儲進去* 2,洗牌     shuffle方法* 3,發牌* 4,看牌* */public static void main(String[] args) {//1,買一副撲克,其實就是自己創建一個集合對象,將撲克牌存儲進去String [] num = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};String [] color = {"紅桃","黑桃","方片","梅花"};HashMap<Integer, String> hm = new  HashMap<>();         //存儲索引和撲克牌ArrayList<Integer> list = new ArrayList<>();            //存儲索引int index = 0;                                          //定義一個索引值   //拼接撲克牌并將索引和撲克牌存儲在HashMap中for(String s1 : num){                                   //獲取數字for(String s2 : color){                             //獲取顏色hm.put(index, s2.concat(s1));list.add(index);                                //將索引0到51添加到list集合中index++;}}
//      System.out.println(index);//將小王添加到雙列集合中hm.put(index, "小王");list.add(index);                                        //將52索引添加到集合中index++;hm.put(index, "大王");                                    //將53索引添加到集合中list.add(index);            
//      System.out.println(hm);
//      System.out.println(list);//2,洗牌Collections.shuffle(list);
//      System.out.println(list);//3,發牌TreeSet<Integer> 高進 = new TreeSet<>();TreeSet<Integer> 龍五 = new TreeSet<>();TreeSet<Integer> 諺語 = new TreeSet<>();TreeSet<Integer> 底牌 = new TreeSet<>();for(int i = 0; i <list.size();i++){if(i >= list.size() - 3){底牌.add(list.get(i));            //將三張底牌存儲在底牌集合中}else if(i % 3 == 0){高進.add(list.get(i));}else if(i % 3 == 1){龍五.add(list.get(i));}else {諺語.add(list.get(i));}}//4,看牌      重復動作抽取方法lookPoker(hm,高進,"高進");lookPoker(hm,龍五,"龍五");lookPoker(hm,諺語,"諺語");lookPoker(hm,底牌,"底牌");
}/*** 看牌* 1,返回值類型void* 2,參數列表HashMap,TreeSet,String name* */public static void lookPoker(HashMap<Integer,String> hm , TreeSet<Integer> ts , String name){System.out.print(name + "的牌是:");for (Integer i : ts) {                  //i代表雙列集合中的每一個鍵System.out.print(hm.get(i) + " ");}System.out.println();}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/380017.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/380017.shtml
英文地址,請注明出處:http://en.pswp.cn/news/380017.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

應用程序控件

活動指示器 當任務或進程已經完成時&#xff0c;活動指示器就會消失。推薦您使用這種默認行為&#xff0c;因為用戶期望在有動作發生時看到活動指示器&#xff0c;而且他們會將靜止不動的活動指示器與停滯的進程聯想到一起。 要了解如何顯示網絡活動指示器&#xff0c;請參考UI…

離散數學與集合論_離散數學中的集合論和集合類型

離散數學與集合論集合論 (Set theory) The set is a well-defined collection of definite objects of perception or thought and the Georg Cantor is the father of set theory. A set may also be thought of as grouping together of single objects into a whole. The ob…

XADD和NEG命令

XADD 交換相加指令&#xff0c;先交換然后相加 比如說&#xff1a; xadd eax&#xff0c;ecx /* 相當于&#xff1a;先執行&#xff1a;xchg eax,ecx然后執行&#xff1a;add eax,ecx */此時eax2&#xff0c;ecx3&#xff0c;執行完&#xff1a;eax5&#xff0c;ecx2 neg …

Visual C# 2008+SQL Server 2005 數據庫與網絡開發--11.3.2 LINQ to SQL對數據庫建模

Visual Studio 2008版本中為LINQ to SQL提供了一個特別的設計器&#xff0c;使用這個設計器可以很方便的將數據庫可視化地轉換為LINQ to SQL對象模型。在LINQ to SQL中&#xff0c;設計器在關系數據庫的數據模型和開發語言之間建立一座橋梁。當應用程序運行時&#xff0c;LINQ …

Java——異常處理(鍵盤錄入一個整數,輸出其對于二進制)

例題&#xff1a; 鍵盤錄入一個int類型的整數&#xff0c;對其求二進制表現形式 如果錄入的整數過大&#xff0c;給予提示&#xff0c;錄入的整數過大&#xff0c;請重新錄入一個整數BigInteger 如果錄入的是小數&#xff0c;給予提示&#xff0c;錄入的是小數&#xff0c;請…

認清SQL_Server_2005的基于行版本控制的兩種隔離級別

--認清SQL_Server_2005的基于行版本控制的兩種隔離級別--By:zc_0101 Date:2010-03-31--快照隔離級別(snapshot)和已提交讀快照隔離級別(read committed snapshot)--特點&#xff1a;在這兩種隔離級別下&#xff0c;讀取數據時不再請求共享鎖&#xff0c;而且永遠不會與修改進程…

Java SecurityManager checkPermission()方法與示例

Syntax: 句法&#xff1a; public void checkPermission(Permission perm);public void checkPermission(Permission perm, Object cntxt);SecurityManager類的checkPermission()方法 (SecurityManager Class checkPermission() method) checkPermission() method is availa…

匯編test指令

功能&#xff1a;將兩個操作數進行邏輯與運算&#xff0c;并根據運算結果設置相關的標志位&#xff0c;并不改變操作數1和操作數2的值 test 操作數1&#xff0c;操作數2我們經常用test來判斷一個值是否為0&#xff0c;用法&#xff1a; test 操作數1&#xff0c;操作數1比如我…

CSS兼容IE/Firefox要點

首先我們說說firefox和IE對CSS的寬度顯示有什么不同&#xff1a; 其實CSS ’width’ 指的是標準CSS中所指的width的寬度&#xff0c;在firefox中的寬度就是這個寬度。它只包含容器中內容的寬度。而Internet Explorer ’width’則是指整個容器的寬度&#xff0c;包括內容&#x…

Java GregorianCalendar computeFields()方法與示例

GregorianCalendar類computeFields()方法 (GregorianCalendar Class computeFields() method) computeFields() method is available in java.util package. 在java.util包中提供了validateFields()方法 。 computeFields() method is used to compute the calendar fields and…

JS、JNS、JP(JPE)、JNP(JPO)指令詳解、從原理上解釋

JS 格式&#xff1a; js 地址當執行到JS指令時&#xff0c;如果標志位SF1&#xff0c;則跳轉到指定的地址&#xff0c;如果SF0&#xff0c;不跳轉 比如&#xff1a; cmp eax&#xff0c;ecx js 0040100c此時eax0&#xff0c;ecx1&#xff0c;執行完cmp命令&#xff0c;符號標…

zz如何保持專心

養成好習慣 養成在固定時間、固定地點專心學習工作的好習慣。 如果可能&#xff0c;在進入學習或者工作狀態前做一些小儀式&#xff0c;比如擺個姿勢&#xff0c;戴上學習帽什么的。就好像在運動前做準備活動一樣&#xff0c;給身體一個提示。讓頭腦做好準備 避免在學習前做什么…

Java——File類

一&#xff0c;File類的概述和構造方法 A&#xff1a;file類的概述 file類可以理解成一個路徑 文件夾或者是文件夾路徑 路徑分為絕對路徑和相對路徑 絕對路徑是一個固定的路徑&#xff0c;從盤符開始 這里的G&#xff1a;\TIM 就是一個絕對路徑&#xff0c;是一個固定的路…

Linux進程環境

一 main函數 當內核使用一個exec函數執行C程序時&#xff0c;在調用main函數之前先調用一個特殊的啟動例程&#xff0c;可執行程序將此例程指定為程序的起始地址。啟動例程從內核獲取命令行參數和環境變量&#xff0c;然后為調用main函數做好準備。 二 進程終止 進程終止的方式…

JO、JNO、JB、JNB命令詳解(從原理上)

JO 當執行到jo命令時&#xff0c;如果ZF標志位為1&#xff0c;則跳轉&#xff0c;反之不跳轉 add eax,ecx jo 00401000c此時eax7fff ffff &#xff0c;ecx0000 0001&#xff0c;執行完add命令&#xff0c;OF1&#xff0c;原因是eax存儲的最大值是7fffffff&#xff0c;再加1&a…

java 根據類名示例化類_Java類類getProtectionDomain()方法及示例

java 根據類名示例化類類class getProtectionDomain()方法 (Class class getProtectionDomain() method) getProtectionDomain() method is available in java.lang package. getProtectionDomain()方法在java.lang包中可用。 getProtectionDomain() method is used to return …

snagit 9.0注冊碼

8.0的注冊碼 A5CCU-RYNM4-C9ECC-5CWW9-B5R7B 5HCC5-4CCC9-NGXCM-XYDZ5-H6ER6 HLHAD-2CZLC-8XYDC-CC5CB-P289A D5DSC-WZCBM-JRHSC-QVTEV-TR7R8 snagit 9.0: name:Team Z.W.T sn:XMYU5-9CMBC-5SLBZ-DKML2-JE8M5 謝謝 name:Team Z.W.T sn: WDYMP-8ALRM-GVVV2-PH8VK-6MD27 Z…

vue3 配置 @符號

config,ts 配置 有 爆紅 安裝 npm install 一下 然后 配置 路徑提示功能 tsconfig.json 配置 路徑提示功能 一共這兩個路徑配置

android 頁面轉換

通過setContentView來改變布局 很簡單 ViewchangeActivity.java package idrc.change;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class ViewchangeActivity extends Activity {/** Called when the…

mts模式_MTS的完整形式是什么?

mts模式MTS&#xff1a;Microsoft Transaction Server /移動電話服務/多通道電視聲音 (MTS: Microsoft Transaction Server/ Mobile Telephone Service/ Multichannel Television Sound) 1)MTS&#xff1a;Microsoft Transaction Server (1) MTS: Microsoft Transaction Server…