静态导入

1.静态导入格式

import static xxx.xxx 

导入某个类的属性,可以直接调用

2.可变参数

修饰符  返回值类型  方法名(参数类型...形参名)

public static int add(int...arr){
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }

3.集合工具类Collections

  1.shuffle()方法,打乱顺序

  2.sort()方法,对集合进行升序排序

4.集合嵌套

  • ArrayList嵌套 ArrayList

  ArrayList< ArrayList<String> >

  Collection< ArrayList<Integer> >

  • Map嵌套 ArrayList

  HashMap<String, ArrayList<Person>>

  ArrayList< HashMap<String, String>>

  • Map集合嵌套

  HashMap<String, HashMap<String,String>>

  HashMap<String, HashMap<Person,String>>

5.斗地主案例

整体思路:创建装有牌的Map集合,创建牌号集合,把花色牌和牌号封装到Map集合

封装好后打乱顺序,创建三个玩家集合和底牌集合,按照牌号取余3的方式发牌

发给三个玩家后把牌排序,最后打印每个玩家的牌

package com.oracle.demo01;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;

public class Demo01 {
    public static void main(String[] args) {
        //创建装有牌的map集合
        HashMap<Integer,String> pooker=new HashMap<Integer,String>();
        //创建装有牌号的集合
        ArrayList<Integer> pookerNum=new ArrayList<Integer>();
        //封装花色和号码
        String[] color= {"♠️️","♥️","♦️","♣️"};
        String[] number= {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
        int index=2;
        for(String num:number) {
            for(String col:color) {
                //封装map集合
                pooker.put(index, col+num);
                //将key值装到list集合
                pookerNum.add(index);
                index++;
            }
        }
        //封装大小王
        pooker.put(0, "大王");
        pooker.put(1, "小王");
        pookerNum.add(0);
        pookerNum.add(1);
        //洗牌
        Collections.shuffle(pookerNum);
        //创建三个玩家容器和一个底牌容器
        ArrayList<Integer> player1=new ArrayList<Integer>();
        ArrayList<Integer> player2=new ArrayList<Integer>();
        ArrayList<Integer> player3=new ArrayList<Integer>();
        ArrayList<Integer> bottom=new ArrayList<Integer>();
        //发牌
        for(int i=0;i<pookerNum.size();i++) {
            //先将前三张牌发给底牌
            if(i<3) {
                bottom.add(pookerNum.get(i));
            }else if(i%3==0) {//发给玩家1
                player1.add(pookerNum.get(i));
            }else if(i%3==1) {//发给玩家2
                player2.add(pookerNum.get(i));
            }else if(i%3==2) {//发给玩家3
                player3.add(pookerNum.get(i));
            }
        }
        //排序
        Collections.sort(player1);
        Collections.sort(player2);
        Collections.sort(player3);
        Collections.sort(bottom);
        look("渣渣辉",pooker,player1);
        look("周杰伦",pooker,player2);
        look("黄渤",pooker,player3);
        look("底牌",pooker,bottom);
    }
    //看牌
    //写一个方法遍历集合
    public static void look(String name,HashMap<Integer,String> pooker,ArrayList<Integer> player) {
        System.out.print(name+":");
        for(int key:player) {
            System.out.print(pooker.get(key)+" ");
        }
        System.out.println();
    }
}

 

posted @ 2020-11-02 20:37  杰斯-java  阅读(143)  评论(0)    收藏  举报