静态导入
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(); } }
浙公网安备 33010602011771号