جمع واجهة الجذر في التسلسل الهرمي. تمثل المجموعة مجموعة من الكائنات ، تسمى أيضًا عناصر المجموعة. تسمح بعض المجموعات عناصر مكررة ، في حين أن البعض الآخر لا. يتم طلب بعض المجموعات ، في حين أن البعض الآخر مضطرب. لا يوفر JDK أي تطبيق مباشر لهذه الواجهة: فهو يوفر تطبيقات فرعية أكثر تحديدًا (مثل SET and LIST). عادةً ما تستخدم هذه الواجهة لتمرير المجموعات وتشغيل هذه المجموعات حيث يكون الحد الأقصى لعملاء.
المحتوى الرئيسي: هنا نستخدم المجموعة لمحاكاة لعبة البوكر التي لعبها Guys Big Guys في أفلام هونغ كونغ.
1. قواعد اللعبة: كل من اللاعبين يتناول بطاقتين في أيديهما ويقارنهما. قارن الحد الأقصى لنقاط بطاقة كل لاعب ، والحجم هو A-2 ، والنوقة التي لديها أكبر النقاط يفوز. إذا كانت النقاط هي نفسها ، فسيتم مقارنة لون الدعوى ، يكون الحجم أسود (4) ، أحمر (3) ، البرقوق (2) ، مربع (1) ، ولون الدعوى هو الفائز.
2. خطوات التنفيذ:
قم بإنشاء مجموعة من أوراق اللعب A-2 ، بأربعة ألوان من الأسود (4) ، الأحمر (3) ، البرقوق (2) ، ومربع (1) يبلغ مجموعها 52 بطاقة ؛
قم بإنشاء لاعبين بما في ذلك معرف اللاعب والاسم ومعلومات البطاقة المرخصة ؛
خلط البطاقات وتعامل بطاقتين لكلا اللاعبين ؛
قارن حجم البطاقة في يد اللاعب للحصول على الفائز ؛
3. تنفيذ البرنامج
فئة البطاقة: يحتوي على أرقام وألوان البطاقات
Package CollectionTest.games ؛ بطاقة الفئة العامة {Private Integer ID ؛ // حجم البطاقة نوع عدد صحيح خاص ؛ // لون البطاقة العامة للبطاقة (معرف عدد صحيح ، نوع صحيح) {this.id = id ؛ this.type = type ؛ } integer getId () {return id ؛ } public void setId (integer id) {this.id = id ؛ } integer gettype () {return type ؛ } public void setType (نوع integer) {this.type = type ؛ } Override Public String ToString () {return "card [id =" + id + "، type =" + type + "]" ؛ }} فئة البوكر البوكر: يتضمن بطاقة البوكر A-2
Package CollectionTest.games ؛ Public Class Poker {Private Card ID2 ؛ بطاقة ID3 الخاصة ؛ بطاقة ID4 الخاصة ؛ بطاقة ID5 الخاصة ؛ بطاقة ID6 الخاصة ؛ بطاقة ID7 الخاصة ؛ بطاقة ID8 الخاصة ؛ بطاقة ID9 الخاصة ؛ بطاقة ID10 الخاصة ؛ بطاقة خاصة J ؛ بطاقة خاصة س ؛ بطاقة خاصة K ؛ البطاقة الخاصة أ ؛ Public Poker () {} // أربعة أنواع: Black-- 4 ، Red-- 3 ، Plum-- 2 ، Square-- 1 Public Poker (نوع integer) {this.id2 = new card (2 ، type) ؛ 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 ؛ } public void setId2 (card id2) {this.id2 = id2 ؛ } البطاقة العامة getId3 () {return id3 ؛ } public void setId3 (card id3) {this.id3 = id3 ؛ } البطاقة العامة getId4 () {return id4 ؛ } public void setId4 (card id4) {this.id4 = id4 ؛ } البطاقة العامة getId5 () {return id5 ؛ } public void setId5 (card id5) {this.id5 = id5 ؛ } البطاقة العامة getId6 () {return id6 ؛ } public void setId6 (card id6) {this.id6 = id6 ؛ } البطاقة العامة getId7 () {return id7 ؛ } public void setId7 (card id7) {this.id7 = id7 ؛ } البطاقة العامة getId8 () {return id8 ؛ } public void setId8 (card id8) {this.id8 = id8 ؛ } البطاقة العامة getId9 () {return id9 ؛ } public void setId9 (card id9) {this.id9 = id9 ؛ } البطاقة العامة getId10 () {return id10 ؛ } public void setId10 (card id10) {this.id10 = id10 ؛ } card getj () {return j ؛ } public void setj (card j) {j = j ؛ } البطاقة العامة getq () {return q ؛ } public void setq (card q) {q = q ؛ } البطاقة العامة getk () {return k ؛ } public void setk (card k) {k = k ؛ } البطاقة العامة geta () {return a ؛ } public void seta (card a) {a = a ؛ }} فئة المشغل: يحتوي على معرف اللاعب والاسم ومعلومات البطاقة المحتجزة
Package CollectionTest.games ؛ import java.util.arraylist ؛ import java.util.list ؛ Public Class Player {// player's ID string id ؛ // اسم اللاعب اسم السلسلة الخاصة ؛ // رخصة اللاعب التي يحتفظ بها القائمة الخاصة للاعب <Card> pokertype ؛ Public Player () {} Public Player (معرف السلسلة ، اسم السلسلة ، القائمة <Card> pokertype) {this.id = id ؛ this.name = name ؛ this.pokerType = new ArrayList <> () ؛ } السلسلة العامة getId () {return id ؛ } public void setId (string id) {this.id = id ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } القائمة العامة <Card> getPokerType () {return pokertype ؛ } public void setPokerType (قائمة <Card> pokertype) {this.pokertype = pokertype ؛ }} لعبة البوكر الفئة الرئيسية: بما في ذلك 1) إنشاء البوكر 2) إنشاء اللاعب 3) تقلص 4) خصم 5) قارن الفائزين والخسائر
package collectiontest.games ؛ import java.util.arraylist ؛ import java.util.arrays ؛ import java.util.collections ؛ import java.util.hashmap ؛ import java.util.hashset ؛ import java.util.list ؛ java.Util.map ؛ eSpress java.scanner ؛ {// إنشاء أوراق تشغيل المجموعة العامة <Poker> cpoker () {system.out.println ("************ ابدأ في إنشاء بطاقات البوكر **********") ؛ // إنشاء سطح من البوكر // أربعة أنواع: Black-- 4 ، Red-- 3 ، Plum-- 2 ، Square-- 1 Set <Boker> pokers = new hashset <> () ؛ Poker [] Poker = {New Poker (1) ، New Poker (2) ، New Poker (3) ، New Poker (4)} ؛ /** استخدام فئات أدوات المجموعات* collections.addall (Pokers ، New Poker (1) ، New Poker (2) ، New Poker (3) ، New Poker (4)) ؛ * * */ pokers.addall (arrays.aslist (poker)) ؛ system.out.println ("********************** BOKER CARTER BRAINCH بنجاح ****************") ؛ عودة البوكرز. } // إنشاء خريطة عامة لاعبين <string ، player> cplayer () {system.out.println ("************ ابدأ في إنشاء لاعب ******************") ؛ خريطة <string ، player> map = new hashmap <string ، player> () ؛ // التحكم في التحكم في عدد صحيح = 0 ؛ System.out.println ("إنشاء لاعبين ، إنشاء وفقًا للمطالبة") ؛ وحدة التحكم الماسحة الضوئية = ماسح ضوئي جديد (System.in) ؛ بينما (صواب) {system.out.println ("الرجاء إدخال"+(control+1)+"معرف اللاعب:") ؛ String coursiD = console.next () ؛ if (isNumeric (courseid)) {system.out.println ("الرجاء إدخال"+(control+1)+"اسم اللاعب:") ؛ String CoursEname = console.next () ؛ لاعبي اللاعبين = لاعب جديد (CourseId ، CoursEname ، NULL) ؛ // حفظ البيانات map.put (courseid ، اللاعبين) ؛ System.out.println ("Add" + (Control + 1) + "Players" + CoursEname + "Success") ؛ // إضافة Control ++ حسب الرقم ؛ } آخر {system.out.println ("****** الرجاء إدخال المعرف الرقمي *******") ؛ يكمل؛ } if (control == 2) {break ؛ }} system.out.println ("************ تم إنشاء لاعب بنجاح ****************") ؛ خريطة العودة } // تحديد ما إذا كان الإدخال عبارة عن رقم ، الحرف. iSdigit () هو طريقة java boolean isnumeric (String str) {for (int i = 0 ؛ i <str.length () ؛ i ++) {if (! character.isdigit (str.charat (i))) {return false ؛ }} إرجاع صحيح ؛ } / ***Shuffle: 52 يمكن أيضًا إنشاء أرقام عشوائية مختلفة لتحقيق Shuffle*** / قائمة عامة <Card> Wpoker (Set <Poker> pokers) {system.out.println ("********* START Shuffle **********") ؛ // استخدم النوع المنظم من القائمة ، وحفظ الطلب بعد خلط ورق اللعب. قائمة <Card> listCard = new ArrayList <> () ؛ // استخدم النوع غير المرتبة المحدد لتحقيق مجموعة خلط <Card> learsset = new hashset <> () ؛ // حفظ إلى المجموعة ، غير مرتبة لـ (Poker PK: pokers) {placesset.add (pk.getId2 ()) ؛ learset.add (pk.getId3 ()) ؛ learset.add (pk.getId4 ()) ؛ learset.add (pk.getId5 ()) ؛ learset.add (pk.getId5 ()) ؛ learset.add (pk.getId6 ()) ؛ learset.add (pk.getId7 ()) ؛ learset.add (pk.getId8 ()) ؛ learset.add (pk.getId9 ()) ؛ learset.add (pk.getId10 ()) ؛ learset.add (pk.getj ()) ؛ learset.add (pk.getq ()) ؛ learset.add (pk.getk ()) ؛ learset.add (pk.getk ()) ؛ learset.add (pk.geta ()) ؛ } // حفظ في مجموعة القائمة ، تم طلبها لـ (Card Cd: plusSet) {listcard.add (cd) ؛ System.out.println (CD) ؛ } system.out.println ("********************* بنجاح إعادة صياغة **********") ؛ بطاقة الإرجاع ؛ }. // التحكم في كل شخص للتعامل مع بطاقتين التحكم int = 0 ؛ لـ (map.entry <string ، player> inter: pmap.entryset ()) {if (control == 0) {for (int i = 0 ؛ i <3 ؛ i = i + 2) {// distribution entry.getValue (). } // تحديث كائن خريطة pmap.put (interpt.getKey () ، enter.getValue ()) ؛ Control ++ ؛ } آخر إذا (control == 1) {for (int i = 1 ؛ i <4 ؛ i = i + 2) {// distribution entry.getValue (). getPokerType (). add (listcard.get (i)) ؛ } // تحديث كائن خريطة pmap.put (interpt.getKey () ، enter.getValue ()) ؛ Control ++ ؛ } آخر {break ؛ }} System.out.println ("******************** SEAP الناجحة **********") ؛ إرجاع PMAP ؛ } Public Void CompareMatch (MAP <String ، Player> NewMap) { /* قارن الفوز والخسائر* 1. احصل أولاً على المعرف والمعرف لأكبر بطاقة في أيدي كل لاعب. * 2. قارن أحجام الهوية لأكبر البطاقة في أيدي لاعبين ، والفوز الأكبر. * 3. إذا كانت معرفات البطاقتين متساوية ، عند مقارنة معرفات الدعوى للبطاقتين ، فسيكون معرف الدعوى أكبر وسيتم تحقيق النصر. * * */ list <layer> players = new ArrayList <> () ؛ // احصل على اثنين من اللاعبين (map.entry <string ، player> الإدخال: newmap.entryset ()) {players.add (entry.getValue ()) ؛ }. // احصل على معرف وبدلة أكبر البطاقة inemaxid = math.max (playerOne.get (0) .getId () ، playerOne.get (1) .getId ()) ؛ integer onemaxtype = (onemaxid! = playerOne.get (0) .getID ())؟ playerOne.get (1) .gettype (): playerOne.get (0) .getType () ؛ // Player اثنين من المعلومات وقائمة الترخيص <Card> playertwo = players.get (1) .getPokerType () ؛ // احصل على معرف وبدلة أكبر بطاقة عدد صحيح TwoMaxid = Math.Max (playertwo.get (0) .getId () ، playertwo.get (1) .getId ()) ؛ integer twomaxtype = (twomaxid! = playertwo.get (0) .getId ())؟ playertwo.get (1) .gettype (): playertwo.get (0) .gettype () ؛ if (onemaxid> twomaxid) {system.out.println ("player:" + players.get (0) .getName () + "win !!") ؛ } آخر إذا (onemaxid == twomaxid) {if (onemaxtype> twomaxtype) {system.out.println ("player:" + players.get (0) .getName () + "win !!") ؛ } آخر {system.out .println ("player:" + players.get (1) .getName () + "win!") ؛ }} آخر {system.out.println ("player:" + players.get (1) .getName () + "win !!") ؛ } system.out.println ("*********************************************************** system.out.println ("player:" + players.get (0) .getName () + "the card of" is: disterame (playerOne.get (1) .getid () ، 1)) ؛ DisherAme (playertwo.get (1) .getType () ، 0) + "-" + displyame (playertwo.get (1) .getid () ، 1)) ؛ } // اسم سلسلة بطاقة العرض الخاصة المعروضة (integer i ، type integer) {String str = "" ؛ // sup suit if (type == 0) {switch (i) {case 1: {str = "cube" ؛ استراحة؛ } الحالة 2: {str = "plum blossom" ؛ استراحة؛ } الحالة 3: {str = "القلب" ؛ استراحة؛ } الحالة 4: {str = "str =" spads "؛ break ؛} الافتراضي: {break ؛}}} // إظهار الرقم إذا (type == 1) {if (i <11) {return Break ؛ gb.cplayer () نتائج التشغيل:
********* ابدأ في إنشاء بطاقات البوكر **********
************* إنشاء بطاقة البوكر بنجاح *************
********* ابدأ في إنشاء اللاعبين *************
لإنشاء لاعبين ، يرجى إدخال معرف اللاعب الأول وفقًا للمطالبات:
الرجاء إدخال اسم اللاعب الأول:
أضاف ستيفن تشاو أول لاعب. نجح ستيفن تشاو. الرجاء إدخال معرف اللاعب الثاني:
الرجاء إدخال اسم اللاعب الثاني:
أضاف Chow Yun-Fat اللاعب الثاني ، Chow Yun-FAT بنجاح
********** إنشاء لاعب بنجاح *************
************ ابدأ خلط ورق اللعب **********
بطاقة [معرف = 9 ، اكتب = 3]
بطاقة [معرف = 11 ، اكتب = 4]
بطاقة [معرف = 13 ، اكتب = 3]
بطاقة [معرف = 8 ، اكتب = 3]
بطاقة [معرف = 5 ، اكتب = 2]
بطاقة [معرف = 6 ، اكتب = 1]
بطاقة [معرف = 4 ، اكتب = 3]
بطاقة [معرف = 5 ، اكتب = 4]
بطاقة [معرف = 2 ، اكتب = 3]
بطاقة [معرف = 9 ، اكتب = 2]
بطاقة [معرف = 9 ، اكتب = 4]
بطاقة [معرف = 14 ، اكتب = 2]
بطاقة [معرف = 9 ، اكتب = 1]
بطاقة [معرف = 2 ، اكتب = 1]
بطاقة [معرف = 2 ، اكتب = 4]
بطاقة [معرف = 7 ، اكتب = 4]
بطاقة [معرف = 11 ، اكتب = 1]
بطاقة [معرف = 10 ، اكتب = 1]
بطاقة [معرف = 14 ، اكتب = 4]
بطاقة [معرف = 14 ، اكتب = 3]
بطاقة [معرف = 12 ، اكتب = 2]
بطاقة [معرف = 2 ، اكتب = 2]
بطاقة [معرف = 10 ، اكتب = 2]
بطاقة [معرف = 7 ، اكتب = 1]
بطاقة [معرف = 7 ، اكتب = 3]
بطاقة [معرف = 8 ، اكتب = 2]
بطاقة [معرف = 4 ، اكتب = 4]
بطاقة [معرف = 13 ، اكتب = 4]
بطاقة [معرف = 14 ، اكتب = 1]
بطاقة [معرف = 12 ، اكتب = 1]
بطاقة [معرف = 5 ، اكتب = 1]
بطاقة [معرف = 6 ، اكتب = 4]
بطاقة [معرف = 12 ، اكتب = 4]
بطاقة [معرف = 11 ، اكتب = 2]
بطاقة [معرف = 10 ، اكتب = 3]
بطاقة [معرف = 3 ، اكتب = 4]
بطاقة [معرف = 12 ، اكتب = 3]
بطاقة [معرف = 4 ، اكتب = 2]
بطاقة [معرف = 4 ، اكتب = 1]
بطاقة [معرف = 6 ، اكتب = 2]
بطاقة [معرف = 5 ، اكتب = 3]
بطاقة [معرف = 8 ، اكتب = 4]
بطاقة [معرف = 3 ، اكتب = 2]
بطاقة [معرف = 13 ، اكتب = 2]
بطاقة [معرف = 7 ، اكتب = 2]
بطاقة [معرف = 3 ، اكتب = 3]
بطاقة [معرف = 3 ، اكتب = 1]
بطاقة [معرف = 6 ، اكتب = 3]
بطاقة [معرف = 8 ، اكتب = 1]
بطاقة [معرف = 11 ، اكتب = 3]
بطاقة [معرف = 13 ، اكتب = 1]
بطاقة [معرف = 10 ، اكتب = 4]
************* تعديل ناجح **********
************* تبدأ صفقة التهمة ************
*********** صفقة ناجحة *************
اللاعب: فاز ستيفن تشاو! !
***************************************************
اللاعب: بطاقة ستيفن تشاو هي: Red Peach-9 Red Peach-K
لاعب: بطاقة تشاو يون فال
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.