Java学习之利用集合发牌小练习

/*
* 思路:
* A:创建一个HashMap集合
* B:创建一个ArrayList集合
* C:创建花色数组和点数数组
* D:从0开始往HashMap里面存储编号,并存储对应的牌同时往ArrayList里面存储编号即可。
* E:洗牌(洗的是编号)
* F:发牌(发的也是编号,为了保证编号是排序的,就创建TreeSet集合接收)
* G:看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)
*/

 1 package com.swust.集合;
 2
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.HashMap;
 6 import java.util.List;
 7 import java.util.Map;
 8 import java.util.Set;
 9 import java.util.TreeSet;
10
11 public class Example4 {
12     public static void main(String[] args) {
13         puKe();
14     }
15     public static void puKe(){
16         /**
17          * 装牌
18          */
19         String[] strings = {"♦","♣","♠","♥"};
20         String[] number ={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
21         Map<Integer,String> map = new HashMap<Integer,String>();
22         List<Integer> newList = new ArrayList<Integer>();
23         int index = 0;
24         /**
25          * 错误原因:未考虑牌数递增情况,自始至终只有十三张牌
26          */
27         for(String var : number){
28             for(String color : strings){
29                 String string = color.concat(var);
30                 map.put(index, string);
31                 newList.add(index);
32                 index++;
33             }
34         }
35         map.put(index, "小王");
36         newList.add(index);
37         index++;
38         map.put(index, "大王");
39         newList.add(index);
40         index++;
41
42         /**
43          * 洗牌
44          */
45         Collections.shuffle(newList);
46
47         /**
48          * 发牌
49          */
50         Set<Integer> seta = new TreeSet<Integer>();
51         Set<Integer> setb = new TreeSet<Integer>();
52         Set<Integer> setc = new TreeSet<Integer>();
53         Set<Integer> setd = new TreeSet<Integer>();
54
55         for(int i=0;i<newList.size();i++){
56             if(i>=newList.size()-3){
57                 setd.add(newList.get(i));
58             }else if(i%3==0){
59                 seta.add(newList.get(i));
60             }else if(i%3==1){
61                 setb.add(newList.get(i));
62             }else if(i%3==2){
63                 setc.add(newList.get(i));
64             }
65         }
66
67         lookUp(map,setb);
68     }
69     public static void lookUp(Map<Integer,String> map,Set<Integer> set){
70         for(Integer var : set){
71             System.out.print(map.get(var)+" ");
72         }
73     }
74 }
时间: 2024-12-26 05:14:27

Java学习之利用集合发牌小练习的相关文章

Java学习入门-05 -集合浅析

集合数据结构体系框架 Collection接口是List/Set/Queue接口的父接口,其中定义的常用的操作方法有(注意此处笔记不完整,演示代码没有导包): 添加功能?i. boolean add(object obj)添加一个元素?ii. boolean addAll(Collection c)将集合c的全部元素添加到原集合元素后返回true?iii. 添加功能永远返回true 删除功能?i. void clear();移除所有元素?ii. boolean remove(Object o)移

黑马程序员——JAVA学习笔记八(集合)

1,    JAVA最初版本只为最常用的数据结构提供了很少的一组类:Vector.Stack.Hashtable.BitSet与Enumeration接口,从JAVA1.2版本开始推出了一组功能完善的的数据结构. 集合类的由来:  对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定.  就使用集合容器进行存储. 集合特点: 1,用于存储对象的容器. 2,集合的长度是可变的. 3,集合中不可以存储基本数据类型值. 4,接口与实现相互分离. 集合框架是为表示和操作集合而规定的一种统一的标准

Java学习日记-11 集合(1)

Collection接口集合中存储的只是对象的引用,不是对象本身. 1.ArrayList<E>类1.1ArrayList和Collection的关系 public interface List<E>extends Collection<E> public class ArrayList<E> implements List<E> 1.2构造方法 ArrayList() 构造一个初始容量为 10 的空列表. ArrayList(Collectio

Java学习--扑克牌比大小的小游戏

实现:生成五十四张牌,然后进行洗牌,输入两名玩家,然后分别发两张牌,进行比较大小,两张牌中拥有较大一张牌的玩家获胜 Card.java代码如下: package com.cardgame; public class Card { String suit= new String(); String num = new String(); public Card(String suit ,String num){ this.suit=suit; this.num=num; } } Player.ja

【原】Java学习笔记026 - 集合

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 需求:从三国演义中评选出四个最帅的武将,并存储下来 6 7 // 因为具备了面向对象的思想,所以创建四个对象来存储 8 Hero hero1 = new Hero("张飞", 18); 9 Hero hero2 = new Hero("赵云", 16); 10 Her

JAVA学习之常用集合List,Set,Map

常用的集合有List,Set,Map,这三个都是接口,其中List,和Set继承于Collection而Map是一个可以保存键值对的接口 Collection接口Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些 Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”

【Java学习笔记】集合转数组---toArray()

1 package p2; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.List; 6 7 public class ToArray { 8 9 public static void main(String[] args) { 10 11 /* 12 * 集合转数组 13 * 使用的是Collection接口中的toArray方法. 14 * 集合转成数组:可以对集合中的元素操作方法进

【Java学习笔记】集合框架Ⅱ

迭代 ●迭代是取出集合中元素的一种方式. ●因为Collection中有iterator方法,所以每一个子类集合对象都具备迭代器. ●用法: 第一种 for (iterator iter=iterator(); iter.hasNext();) //老外比较喜欢用这种,省内存(iter的内存),开发时用这个 { System.out.println(iter.next()); } 第二种 Iterator iter = l.iterator(); while(iter.hasNext()) {

【Java学习笔记】&lt;集合框架&gt;Iterator的子接口ListIterator

1 import java.util.ArrayList; 2 import java.util.Iterator; 3 import java.util.List; 4 5 public class Test3 { 6 7 public static void main(String[] args) { 8 List list = new ArrayList(); 9 10 list.add("abc1"); 11 list.add("abc2"); 12 lis