Сборник корневого интерфейса в иерархии. Коллекция представляет собой набор объектов, также называемых элементами коллекции. Некоторые коллекции позволяют дублировать элементы, а другие - нет. Некоторые коллекции упорядочены, в то время как другие беспорядочные. JDK не предоставляет прямой реализации этого интерфейса: он предоставляет более конкретные реализации Subinterfaces (например, Set и List). Этот интерфейс обычно используется для прохождения коллекций и управления этими коллекциями, где требуется максимальная универсальность.
Основной контент: Здесь мы используем коллекцию коллекций для имитации игры в покер, которую играют большие парни в гонконгских фильмах.
1. Правила игры: каждый из двух игроков делает две карты в руках и сравнивает их. Сравните максимальные точки карты каждого игрока, размер-A-2, тот, который с самыми большими победами. Если точки одинаковы, сравнивается цвет костюма, размер черный (4), красный (3), слива (2), квадрат (1), а цвет костюма является победителем.
2. Шаги внедрения:
Создайте колоду игры A-2, с четырьмя цветами черного (4), красного (3), сливы (2) и квадратной (1) общей 52 карт;
Создать двух игроков, включая идентификатор игрока и имя и лицензированную информацию карты;
Перетасовать карты и поставить две карты с обоим игроками;
Сравните размер карты в руке игрока, чтобы получить победителя;
3. Реализация программы
Категория карт: содержит цифры и цвета карт
Package collectiontest.games; открытый класс карта {private Integer id; // размер карты Private Integer Type; // Цвет открытой карты карты (IDEGER ID, INTEGER TYPE) {this.id = id; this.type = type; } public integer getId () {return id; } public void setId (Integer id) {this.id = id; } public integer getType () {return type; } public void settype (integer type) {this.type = type; } @Override public String toString () {return "card [id =" + id + ", type =" + type + "]"; }} Poker Poker Class: включает в себя покерную карту A-2
Package collectiontest.games; Public Class Poker {Private Card ID2; частная карта ID3; частная карта ID4; частная карта ID5; частная карта ID6; частная карта ID7; частная карта ID8; частная карта ID9; частная карта ID10; частная карта J; частная карта Q; частная карта k; частная карта A; public poker () {} // четыре типа: Black--4, Red-3, Plum --2, Square--1 Public Poker (Integer Type) {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, тип); } public card getId2 () {return id2; } public void setId2 (card id2) {this.id2 = id2; } public card getId3 () {return id3; } public void setId3 (card id3) {this.id3 = id3; } public card getId4 () {return id4; } public void setId4 (card id4) {this.id4 = id4; } public card getId5 () {return id5; } public void setId5 (card id5) {this.id5 = id5; } public card getId6 () {return id6; } public void setId6 (card id6) {this.id6 = id6; } public card getId7 () {return id7; } public void setId7 (card id7) {this.id7 = id7; } public card getId8 () {return id8; } public void setId8 (card id8) {this.id8 = id8; } public card getId9 () {return id9; } public void setId9 (card id9) {this.id9 = id9; } public card getId10 () {return id10; } public void setId10 (card Id10) {this.id10 = id10; } public card getJ () {return j; } public void setj (card j) {j = j; } public card getQ () {return q; } public void setq (карта q) {q = q; } public card getK () {return k; } public void setk (card k) {k = k; } public card geta () {return a; } public void seta (карта a) {a = a; }} Игрочный класс: содержит идентификатор игрока и имя, информация о карте хранится
Package collectiontest.games; import java.util.arraylist; import java.util.list; Public Class Player {// ID Player's Private String Id; // Имя игрока частной строки; // Лицензия игрока, принадлежащая Player Private List <card> PokerType; public player () {} public Player (идентификатор строки, имя строки, список <card> pokertype) {this.id = id; this.name = name; this.pokertype = new ArrayList <> (); } public String getId () {return id; } public void setId (String id) {this.id = id; } public String getName () {return name; } public void setName (string name) {this.name = name; } public List <card> getPokerType () {return pokerType; } public void setPokerType (List <card> PokerType) {this.pokerType = pokerType; }} Покерная игра Основная категория: в том числе 1) Создание покера 2) Создание игрока 3) сокращение 4) Скидка 5) Сравните победителей и убыток
Package collectiontest.games; import java.util.arraylist; import java.util.arrays; импорт java.util.collections; import java.util.hashmap; импорт java.util.hashset; импорт java.util.list; import java.util.map; import java.canner; {// Создание играющих карт общедоступно <poker> cpoker () {System.out.println ("************ Начните создавать покерные карты **********"); // Создать палубу покера // четыре типа: черный-4, красный-3, слива-2, квадрат-1 Set <poker> pokers = new Hashset <> (); Покер [] покер = {новый покер (1), новый покер (2), новый покер (3), новый покер (4)}; /** Использование классов инструментов коллекций* Collections.addall (Pokers, New Poker (1), новый покер (2), новый покер (3), новый покер (4)); * * */ pokers.addall (arrays.aslist (покер)); System.out.println ("****************** Успешно создание покерной карты ****************);); вернуть покеры; } // Создать двух игроков общедоступной карты <String, player> cplayer () {System.out.println ("************ Начните создавать Player **************** '); Map <string, player> map = new hashmap <string, player> (); // управлять номером целое число контроля = 0; System.out.println («Создать двух игроков, создать в соответствии с подсказкой»); Консоль сканера = новый сканер (System.in); while (true) {System.out.println («Пожалуйста, введите«+(контроль+1)+»идентификатор игрока:»); String courseid = console.next (); if (isNumeric (courseId)) {System.out.println («Пожалуйста, введите«+(контроль+1)+»Имя игрока:»); String coursename = console.next (); Игроки игроков = новый игрок (CourseId, CourseName, NULL); // Сохранить map.put (courseId, игроки); System.out.println ("добавить" + (control + 1) + "игроки" + coursename + "успех"); // Добавить Control ++ по номеру; } else {System.out.println ("****** Пожалуйста, введите числовое идентификатор *******"); продолжать; } if (control == 2) {break; }} System.out.println ("************ Игрок, созданный успешно ******************)"); карта возврата; } // Определите, является ли вход числом, символ.isdigit () - это метод Java public boolean isNumeric (string str) {for (int i = 0; i <str.length (); i ++) {if (! Символ.isdigit (str.charat (i))) {return false; }} вернуть true; } / ***shuffle: 52 различные случайные числа также могут быть сгенерированы для достижения перемешивания*** / public list <card> wpoker (set <poker> pokers) {System.out.println ("********* Start Shuffle *********** // Используйте упорядоченный список и сохраните заказ после перетасовки. List <card> listCard = new ArrayList <> (); // Использование неупорядоченного набора набора для достижения набора шаффл <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 ()); } // Сохранить в сборе списков, заказано для (Card CD: ListSet) {listCard.Add (CD); System.out.println (CD); } System.out.println ("*********************** возврат ListCard; } // Сделка публичной карты <строка, плеера> pushpoker (list <card> listcard, map <string, player> pmap) {System.out.println ("********************* // контролировать каждый человек, чтобы сдать две карты int control = 0; for (map.entry <string, player> intpirt: pmap.entryset ()) {if (control == 0) {for (int i = 0; i <3; i = i + 2) {// urptibution intry.getValue (). getPokerType (). add (distCard.get (i)); } // Обновление карты объекта pmap.put (entry.getKey (), intry.getValue ()); контроль ++; } else if (control == 1) {for (int i = 1; i <4; i = i + 2) {// urpitibution intry.getValue (). getPokerType (). add (listcard.get (i)); } // Обновление карты объекта pmap.put (entry.getKey (), intry.getValue ()); контроль ++; } else {break; }} System.out.println ("****************** Успешная сделка **********"); вернуть PMAP; } public void comparimatch (map <string, player> newmap) { /* сравнить побед и убытки* 1. Сначала получите идентификатор и идентификатор костюма самой большой карты в руках каждого игрока. * 2. Сравните размеры идентификаторов самой большой карты в руках двух игроков, и более крупный победит. * 3. Если идентификаторы двух карт равны, при сравнении идентификаторов костюма двух карт, идентификатор костюма будет больше, и победа будет достигнута. * * */ List <player> players = new ArrayList <> (); // Получить двух игроков для (map.Entry <String, Player> intpirt: newMap.EntrySet ()) {player.Add (entry.getValue ()); } // Player One Information и список лицензий <card> playerOne = player.get (0) .getPokerType (); // Получить идентификатор и костюм самой большой карты Integer OneMaxid = 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 (); // игрок два информации и список лицензий // Получить идентификатор и костюм самой большой карты integer 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:" + player.get (0) .getName () + "Win !!"); } else if (oneMaxId == twomaxid) {if (oneMaxType> twomaxType) {System.out.println ("Player:" + player.get (0) .getName () + "Win !!"); } else {System.out .println ("Player:" + Players.get (1) .getName () + "Win!!"); }} else {System.out.println ("Player:" + player.get (1) .getName () + "Win !!"); } System.out.println ("************************************************************* System.out.println ("Player:" + player.get (0) .getName () + "Карта" IS: " + shodameme (playerOne.get (0) .getType (), 0) +"-" + showerame (playerOne.get (0) .getId (), 1) +" " + showerOne.get (1) shodame (playerone.get (1) .getid (), 1)); shodame (playertwo.get (1) .gettype (), 0) + "-" + showerame (playertwo.get (1) .getid (), 1)); } // Имя отображаемой карты Private String Thenedame (Integer I, Integer Type) {String Str = ""; // показать костюм if (type == 0) {switch (i) {case 1: {str = "cube"; перерыв; } случай 2: {str = "plum blossom"; перерыв; } case 3: {str = "Heart"; перерыв; } случай 4: {str = "str =" spads "; break;} default: {break;}}} // Показать число if (type == 1) {if (i <11) {return i.toString ();} else {switch (i) {case 11: {str =" j "; break;} case 12: {str"; Break; // 3. Результаты работы:
********* Начните создавать покерные карты **********
*************
********* Начните создавать игроков *************
Чтобы создать двух игроков, введите 1 -й идентификатор игрока в соответствии с подсказками:
Пожалуйста, введите первое имя игрока:
Стивен Чоу добавил первого игрока. Стивен Чоу преуспел. Пожалуйста, введите второй идентификатор игрока:
Пожалуйста, введите второе имя игрока:
Чоу Юн-Фат добавил второго игрока, Чоу Юн-Фат успешно
********** Создание игрока успешно *************
************ Старей shuffle **********
Карта [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]
************* Успешная перестановка **********
************* Зарядная сделка начинается ************
************* Успешная сделка *************
Игрок: Стивен Чоу выиграл! !
*********************************************
Игрок: карта Стивена Чоу: Red Peach-9 Red Peach-K
Игрок: карта Чоу Юн-Фат: Spades-J Red-8
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.