รวบรวมอินเทอร์เฟซรูทในลำดับชั้น คอลเลกชันแสดงชุดของวัตถุหรือที่เรียกว่าองค์ประกอบของการรวบรวม คอลเลกชันบางอย่างอนุญาตให้มีองค์ประกอบที่ซ้ำกันในขณะที่อื่น ๆ ไม่ได้ คอลเลกชันบางอย่างได้รับคำสั่งในขณะที่คนอื่น ๆ ไม่เป็นระเบียบ JDK ไม่ได้ให้การใช้งานโดยตรงของอินเทอร์เฟซนี้: มันให้การใช้งาน subinterfaces subinterfaces ที่เฉพาะเจาะจงมากขึ้น (เช่น Set and List) อินเทอร์เฟซนี้มักจะใช้ในการผ่านคอลเลกชันและใช้งานคอลเลกชันเหล่านี้ซึ่งจำเป็นต้องมีความเป็นสากลสูงสุด
เนื้อหาหลัก: ที่นี่เราใช้คอลเลกชันเพื่อจำลองเกมโป๊กเกอร์ที่เล่นโดย The Big Guys ในภาพยนตร์ฮ่องกง
1. กฎของเกม: ผู้เล่นสองคนแต่ละคนจัดการไพ่สองใบในมือของพวกเขาและเปรียบเทียบพวกเขา เปรียบเทียบคะแนนสูงสุดของการ์ดผู้เล่นแต่ละคนขนาดคือ A-2 ซึ่งเป็นคะแนนที่ใหญ่ที่สุดชนะ หากคะแนนเท่ากันสีของชุดจะถูกเปรียบเทียบขนาดเป็นสีดำ (4), สีแดง (3), พลัม (2), สแควร์ (1) และสีของชุดเป็นผู้ชนะ
2. ขั้นตอนการใช้งาน:
สร้างสำรับไพ่ A-2 โดยมีสีดำสี่สี (4), สีแดง (3), พลัม (2) และสี่เหลี่ยม (1) รวม 52 ใบ;
สร้างผู้เล่นสองคนรวมถึง ID ผู้เล่นและชื่อและข้อมูลบัตรที่ได้รับใบอนุญาต
สลับการ์ดและจัดการไพ่สองใบให้กับผู้เล่นทั้งสอง
เปรียบเทียบขนาดของการ์ดในมือของผู้เล่นเพื่อให้ได้ผู้ชนะ
3. การใช้งานโปรแกรม
หมวดหมู่การ์ด: มีตัวเลขและสีของการ์ด
Package CollectionTest.Games; บัตรเรียนสาธารณะ {ID จำนวนเต็มส่วนตัว; // ขนาดของประเภทบัตรจำนวนเต็มส่วนตัว; // สีของการ์ดสาธารณะ (ID จำนวนเต็ม, ประเภทจำนวนเต็ม) {this.id = id; this.type = type; } จำนวนเต็มสาธารณะ getId () {return id; } โมฆะสาธารณะ setId (ID จำนวนเต็ม) {this.id = id; } จำนวนเต็มสาธารณะ getType () {ประเภทกลับ; } โมฆะสาธารณะ setType (ประเภทจำนวนเต็ม) {this.type = type; } @Override สตริงสาธารณะ toString () {return "การ์ด [id =" + id + ", type =" + type + "]"; - Poker Poker Class: รวมการ์ดโป๊กเกอร์ A-2
Package Collectiontest.games; Public Class Poker {บัตรส่วนตัว ID2; บัตรประจำตัวประชาชน ID3; บัตรประจำตัวประชาชน ID4; บัตรส่วนตัว ID5; บัตรส่วนตัว ID6; บัตรประจำตัวประชาชน ID7; บัตรประจำตัวประชาชน ID8; บัตรประจำตัวประชาชน ID9; บัตรส่วนตัว ID10; บัตรส่วนตัว J; บัตรส่วนตัว Q; บัตรส่วนตัว K; บัตรส่วนตัว A; Public Poker () {} // สี่ประเภท: สีดำ-4, สีแดง-3, พลัม-2, สแควร์-1 โป๊กเกอร์สาธารณะ (ประเภทจำนวนเต็ม) {this.id2 = การ์ดใหม่ (2, ประเภท); this.id3 = การ์ดใหม่ (3, ประเภท); this.id4 = การ์ดใหม่ (4, ประเภท); this.id5 = การ์ดใหม่ (5, ประเภท); this.id6 = การ์ดใหม่ (6, ประเภท); this.id7 = การ์ดใหม่ (7, ประเภท); this.id8 = การ์ดใหม่ (8, ประเภท); this.id9 = การ์ดใหม่ (9, ประเภท); this.id10 = การ์ดใหม่ (10, ประเภท); this.j = การ์ดใหม่ (11, ประเภท); this.q = การ์ดใหม่ (12, ประเภท); this.k = การ์ดใหม่ (13, ประเภท); this.a = การ์ดใหม่ (14, ประเภท); } การ์ดสาธารณะ getId2 () {return id2; } โมฆะสาธารณะ setId2 (Card ID2) {this.id2 = id2; } การ์ดสาธารณะ getId3 () {return id3; } โมฆะสาธารณะ setId3 (บัตร ID3) {this.id3 = id3; } การ์ดสาธารณะ getId4 () {return id4; } โมฆะสาธารณะ setId4 (Card ID4) {this.id4 = id4; } การ์ดสาธารณะ getId5 () {return id5; } โมฆะสาธารณะ setId5 (Card ID5) {this.id5 = id5; } การ์ดสาธารณะ getId6 () {return id6; } โมฆะสาธารณะ setId6 (Card ID6) {this.id6 = id6; } การ์ดสาธารณะ getId7 () {return id7; } โมฆะสาธารณะ setId7 (Card ID7) {this.id7 = id7; } การ์ดสาธารณะ getId8 () {return id8; } โมฆะสาธารณะ setId8 (Card ID8) {this.id8 = id8; } การ์ดสาธารณะ getId9 () {return id9; } โมฆะสาธารณะ setId9 (Card ID9) {this.id9 = id9; } การ์ดสาธารณะ getId10 () {return id10; } โมฆะสาธารณะ setId10 (Card ID10) {this.id10 = id10; } บัตรสาธารณะ getJ () {return j; } โมฆะสาธารณะ setj (การ์ด j) {j = j; } บัตรสาธารณะ getq () {return q; } โมฆะสาธารณะ setq (การ์ด q) {q = q; } บัตรสาธารณะ getk () {return k; } โมฆะสาธารณะ setk (การ์ด k) {k = k; } บัตรสาธารณะ geta () {return a; } โมฆะสาธารณะ seta (การ์ด a) {a = a; - คลาสผู้เล่น: มีรหัสผู้เล่นและชื่อข้อมูลการ์ดที่จัดขึ้น
Package Collectiontest.games; นำเข้า java.util.arraylist; นำเข้า java.util.list; ผู้เล่นระดับสาธารณะ {// รหัสส่วนตัวของผู้เล่นรหัสส่วนตัว; // ชื่อผู้เล่นชื่อสตริงส่วนตัว; // ใบอนุญาตของผู้เล่นที่จัดขึ้นโดยผู้เล่นรายการส่วนตัว <Card> PokerType; ผู้เล่นสาธารณะ () {} เครื่องเล่นสาธารณะ (รหัสสตริงชื่อสตริงรายการ <card> pokerType) {this.id = id; this.name = ชื่อ; this.pokerType = arrayList ใหม่ <> (); } สตริงสาธารณะ getId () {return id; } โมฆะสาธารณะ setId (รหัสสตริง) {this.id = id; } สตริงสาธารณะ getName () {ชื่อคืน; } โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } รายการสาธารณะ <card> getPokerType () {return pokerType; } โมฆะสาธารณะ setPokerType (รายการ <card> pokerType) {this.pokerType = pokerType; - เกมโป๊กเกอร์หมวดหมู่หลัก: รวม 1) การสร้างโป๊กเกอร์ 2) การสร้างผู้เล่น 3) หดตัว 4) ส่วนลด 5) เปรียบเทียบผู้ชนะและการสูญเสีย
Package Collectiontest.games; นำเข้า java.util.arraylist; นำเข้า java.util.arrays; นำเข้า java.util.collections; นำเข้า java.util.hashmap; นำเข้า java.util.hashset; นำเข้า java.util.list; gamsbegin {// สร้างการเล่นไพ่สาธารณะชุด <Poker> cpoker () {system.out.println ("************ เริ่มสร้างการ์ดโป๊กเกอร์ **********"); // สร้างสำรับโป๊กเกอร์ // สี่ประเภท: สีดำ-4, สีแดง-3, พลัม-2, สแควร์-1 ชุด <โป๊กเกอร์> โปกเกอร์ = ใหม่ hashset <> (); โป๊กเกอร์ [] โป๊กเกอร์ = {โป๊กเกอร์ใหม่ (1), โป๊กเกอร์ใหม่ (2), โป๊กเกอร์ใหม่ (3), โป๊กเกอร์ใหม่ (4)}; /** การใช้คลาสเครื่องมือคอลเลกชัน* คอลเลกชัน Addall (Pokers, โป๊กเกอร์ใหม่ (1), โป๊กเกอร์ใหม่ (2), โป๊กเกอร์ใหม่ (3), โป๊กเกอร์ใหม่ (4)); * * */ pokers.addall (array.aslist (โป๊กเกอร์)); System.out.println ("**************** การสร้างการ์ดโป๊กเกอร์สำเร็จ **************"); Pokers กลับ; } // สร้างแผนที่สาธารณะผู้เล่นสองคน <สตริงผู้เล่น> cplayer () {system.out.println ("************ เริ่มสร้างผู้เล่น ****************"); แผนที่ <string, player> map = new hashmap <string, player> (); // ควบคุมหมายเลขจำนวนเต็มควบคุม = 0; System.out.println ("สร้างผู้เล่นสองคนสร้างตามพรอมต์"); สแกนเนอร์คอนโซล = สแกนเนอร์ใหม่ (System.in); ในขณะที่ (จริง) {system.out.println ("โปรดป้อน"+(ควบคุม+1)+"ID ผู้เล่น:"); String CourseId = console.next (); if (isnumeric (courseid)) {system.out.println ("โปรดป้อน"+(ควบคุม+1)+"ชื่อผู้เล่น:"); สตริง coursename = console.next (); ผู้เล่นผู้เล่น = ผู้เล่นใหม่ (CourseId, Coursename, Null); // บันทึก data map.put (CourseID, ผู้เล่น); System.out.println ("เพิ่ม" + (ควบคุม + 1) + "ผู้เล่น" + Coursename + "ความสำเร็จ"); // เพิ่มการควบคุม ++ ตามหมายเลข; } else {system.out.println ("****** โปรดป้อน ID ตัวเลข *******"); ดำเนินการต่อ; } if (control == 2) {break; }} system.out.println ("************ ผู้เล่นที่สร้างได้สำเร็จ **************"); แผนที่กลับ; } // ตรวจสอบว่าอินพุตเป็นตัวเลข, character.isdigit () เป็นวิธี Java วิธีบูลีนสาธารณะ isnumeric (สตริง str) {สำหรับ (int i = 0; i <str.length (); i ++) {ถ้า (! }} ส่งคืนจริง; } / ***shuffle: 52 หมายเลขสุ่มที่แตกต่างกันสามารถสร้างขึ้นเพื่อให้ได้ Shuffle*** / รายการสาธารณะ <Card> WPoker (SET <Poker> Pokers) {System.out.println ("********* เริ่มสลับ **********"); // ใช้รายการเรียงลำดับที่เป็นระเบียบและบันทึกคำสั่งซื้อหลังจากการสับเปลี่ยน รายการ <card> listcard = new ArrayList <> (); // ใช้ชุดชุดที่ไม่เรียงลำดับเพื่อให้ได้ชุด shuffle <card> listset = new hashset <> (); // บันทึกลงในชุดที่ไม่เรียงลำดับสำหรับ (Poker PK: Pokers) {listset.add (pk.getId2 ()); listset.add (pk.getid3 ()); listset.add (pk.getId4 ()); listset.add (pk.getId5 ()); listset.add (pk.getId5 ()); listset.add (pk.getid6 ()); listset.add (pk.getid7 ()); listset.add (pk.getid8 ()); listset.add (pk.getid9 ()); listset.add (pk.getid10 ()); listset.add (pk.getj ()); listset.add (pk.getq ()); listset.add (pk.getk ()); listset.add (pk.getk ()); listset.add (pk.geta ()); } // บันทึกในรายการคอลเลกชันที่สั่งซื้อสำหรับ (การ์ดการ์ด: listset) {listcard.add (CD); System.out.println (CD); } system.out.println ("******************* ประสบความสำเร็จในการปรับเปลี่ยน **********"); return listcard; } // การจัดการแผนที่สาธารณะ <String, Player> PushPoker (รายการ <Card> ListCard, แผนที่ <String, Player> PMAP) {System.out.println ("******************* // ควบคุมแต่ละคนเพื่อจัดการไพ่สองใบควบคุม = 0; สำหรับ (map.entry <string, player> รายการ: pmap.entryset ()) {ถ้า (ควบคุม == 0) {สำหรับ (int i = 0; i <3; i = i + 2) {// รายการแจกจ่าย getValue (). getPokerType (). เพิ่ม (ListCard.get (i)); } // อัปเดตแผนที่วัตถุ pmap.put (entry.getKey (), entry.getValue ()); ควบคุม ++; } อื่นถ้า (ควบคุม == 1) {สำหรับ (int i = 1; i <4; i = i + 2) {// รายการแจกจ่าย getValue (). getPokerType (). เพิ่ม (listcard.get (i)); } // อัปเดตแผนที่วัตถุ pmap.put (entry.getKey (), entry.getValue ()); ควบคุม ++; } else {break; }} system.out.println ("****************** ข้อตกลงที่ประสบความสำเร็จ **********"); กลับ PMAP; } โมฆะสาธารณะเปรียบเทียบ (แผนที่ <String, Player> newMap) { /* เปรียบเทียบการชนะและการสูญเสีย* 1 ก่อนอื่นรับ ID และชุดสูทของการ์ดที่ใหญ่ที่สุดในมือของผู้เล่นแต่ละคน * 2. เปรียบเทียบขนาด ID ของการ์ดที่ใหญ่ที่สุดในมือของผู้เล่นสองคนและผู้ชนะที่ยิ่งใหญ่กว่า * 3. หากรหัสของไพ่สองใบมีค่าเท่ากันเมื่อเปรียบเทียบรหัสชุดสูทของไพ่สองใบรหัสชุดสูทจะยิ่งใหญ่กว่าและชัยชนะจะสำเร็จ * * */ list <ผู้เล่น> players = new ArrayList <> (); // รับผู้เล่นสองคนสำหรับ (map.entry <string, ผู้เล่น> รายการ: newMap.entrySet ()) {players.add (entry.getValue ()); } // Player One Information และ Licence List <ard> playerOne = players.get (0) .getPokerType (); // รับ ID และชุดสูทของบัตรจำนวนเต็มที่ใหญ่ที่สุด onemaxid = math.max (playerOne.get (0) .getId (), playerOne.get (1) .getId ()); จำนวนเต็ม onemaxType = (onemaxid! = playerOne.get (0) .getId ())? playerOne.get (1) .getType (): playerOne.get (0) .getType (); // ผู้เล่นสองรายการข้อมูลและใบอนุญาต <ard> playertwo = players.get (1) .getPokerType (); // รับ ID และชุดสูทของบัตรจำนวนเต็มที่ใหญ่ที่สุด twomaxid = math.max (playertwo.get (0) .getId (), playertwo.get (1) .getId ()); จำนวนเต็ม twomaxType = (twomaxid! = playertwo.get (0) .getId ())? playertwo.get (1) .getType (): playertwo.get (0) .getType (); if (onemaxid> twomaxid) {system.out.println ("ผู้เล่น:" + players.get (0) .getName () + "win !!"); } อื่นถ้า (onemaxid == twomaxid) {ถ้า (onemaxtype> twomaxType) {system.out.println ("ผู้เล่น:" + players.get (0) .getName () + "win !!"); } else {system.out .println ("ผู้เล่น:" + players.get (1) .getName () + "win!"); }} else {system.out.println ("ผู้เล่น:" + players.get (1) .getName () + "win !!"); } system.out.println ("***********************************************************"); System.out.println ("ผู้เล่น:" + players.get (0) .getName () + "การ์ดของ" คือ: " + sholdame (playerOne.get (0) .getType (), 0) +"-" + sholdame (playerOne.get (0) .getId (), 1) +" " sholdame (playerOne.get (1) .getId (), 1)); system.out.println ("ผู้เล่น:" + players.get (1) .getName () + "การ์ดของ" คือ: " + sholdame (playertwo.get (0) .getType (), 0) +"-" sholdame (playertwo.get (1) .getType (), 0) + "-" + sholdame (playertwo.get (1) .getId (), 1)); } // ชื่อของสตริงการ์ดแสดงผลส่วนตัวที่แสดง (จำนวนเต็ม i, ประเภทจำนวนเต็ม) {string str = ""; // show suit ถ้า (type == 0) {switch (i) {กรณี 1: {str = "cube"; หยุดพัก; } กรณีที่ 2: {str = "พลัมเบลอส"; หยุดพัก; } กรณีที่ 3: {str = "หัวใจ"; หยุดพัก; } กรณีที่ 4: {str = "str =" spads "; break;} ค่าเริ่มต้น: {break;}}} // แสดงหมายเลขถ้า (type == 1) {ถ้า (i <11) {return i.toString ()} {switch (i) {case 11: {str =" j "; BREAK; gb.cplayer (); ผลการทำงาน:
********* เริ่มสร้างการ์ดโป๊กเกอร์ **********
************* การสร้างการ์ดโป๊กเกอร์สำเร็จ *************
********* เริ่มสร้างผู้เล่น *****************
หากต้องการสร้างผู้เล่นสองคนโปรดป้อนรหัสผู้เล่นคนที่ 1 ตามพรอมต์:
กรุณากรอกชื่อผู้เล่นคนแรก:
Stephen Chow เพิ่มผู้เล่นคนแรก Stephen Chow ประสบความสำเร็จ กรุณากรอกรหัสผู้เล่นคนที่สอง:
กรุณากรอกชื่อผู้เล่นคนที่สอง:
Chow Yun-Fat เพิ่มผู้เล่นคนที่สอง Chow Yun-Fat ประสบความสำเร็จ
********** การสร้างผู้เล่นประสบความสำเร็จ *************
************ เริ่มสับเปลี่ยน **********
การ์ด [id = 9, type = 3]
การ์ด [id = 11, type = 4]
การ์ด [id = 13, type = 3]
การ์ด [id = 8, type = 3]
การ์ด [id = 5, type = 2]
การ์ด [id = 6, type = 1]
การ์ด [id = 4, type = 3]
การ์ด [id = 5, type = 4]
การ์ด [id = 2, type = 3]
การ์ด [id = 9, type = 2]
การ์ด [id = 9, type = 4]
การ์ด [id = 14, type = 2]
การ์ด [id = 9, type = 1]
การ์ด [id = 2, type = 1]
การ์ด [id = 2, type = 4]
การ์ด [id = 7, type = 4]
การ์ด [id = 11, type = 1]
การ์ด [id = 10, type = 1]
การ์ด [id = 14, type = 4]
การ์ด [id = 14, type = 3]
การ์ด [id = 12, type = 2]
การ์ด [id = 2, type = 2]
การ์ด [id = 10, type = 2]
การ์ด [id = 7, type = 1]
การ์ด [id = 7, type = 3]
การ์ด [id = 8, type = 2]
การ์ด [id = 4, type = 4]
การ์ด [id = 13, type = 4]
การ์ด [id = 14, type = 1]
การ์ด [id = 12, type = 1]
การ์ด [id = 5, type = 1]
การ์ด [id = 6, type = 4]
การ์ด [id = 12, type = 4]
การ์ด [id = 11, type = 2]
การ์ด [id = 10, type = 3]
การ์ด [id = 3, type = 4]
การ์ด [id = 12, type = 3]
การ์ด [id = 4, type = 2]
การ์ด [id = 4, type = 1]
การ์ด [id = 6, type = 2]
การ์ด [id = 5, type = 3]
การ์ด [id = 8, type = 4]
การ์ด [id = 3, type = 2]
การ์ด [id = 13, type = 2]
การ์ด [id = 7, type = 2]
การ์ด [id = 3, type = 3]
การ์ด [id = 3, type = 1]
การ์ด [id = 6, type = 3]
การ์ด [id = 8, type = 1]
การ์ด [id = 11, type = 3]
การ์ด [id = 13, type = 1]
การ์ด [id = 10, type = 4]
************* Reshuffle ที่ประสบความสำเร็จ **********
************* ข้อตกลงการเรียกเก็บเงินเริ่ม ************
************* ข้อตกลงที่ประสบความสำเร็จ ***************
ผู้เล่น: Stephen Chow ชนะ! -
-
ผู้เล่น: การ์ดของ Stephen Chow คือ: Red Peach-9 Red Peach-K
ผู้เล่น: การ์ดของ Chow Yun-Fat คือ: Spades-J red-8
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น