Collection集合中的常用方法
public static <T> void sort(List<T> list)
public static <T> int binarySearch(List<?> list, T key)
public static <T> T max(Collection<?> coll)
public static void reverse<List<?> list>
public static void shuffle(List<?> list)
斗地主!
代码:
package com.xiaoxin.test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
public class Demo2_Test {
public static void main(String[] args) {
String[] num = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
String[] color = {"红桃", "黑桃", "方片", "梅花"};
HashMap<Integer, String> hm = new HashMap<>();
ArrayList<Integer> list = new ArrayList<>();
int index = 0;
//拼接扑克牌,并将索引和扑克牌存储在hm中
for(String s1 : num) {
for(String s2 : color) {
list.add(index);
hm.put(index++, s2.concat(s1));
}
}
//将大小王添加到双列集合中
hm.put(index, "小王");
list.add(index);
hm.put(++index, "大王");
list.add(index);
//2、洗牌
Collections.shuffle(list);
//3、发牌
TreeSet<Integer> gaojin = new TreeSet<>();
TreeSet<Integer> huowu = new TreeSet<>();
TreeSet<Integer> me = new TreeSet<>();
TreeSet<Integer> dipai = new TreeSet<>();
for(int i = 0; i < list.size(); i++) {
if(i >= 51) {
dipai.add(list.get(i));
}else if(i % 3 == 0) {
gaojin.add(list.get(i));
}else if(i % 3 == 1) {
huowu.add(list.get(i));
}else if(i % 3 == 2) {
me.add(list.get(i));
}
}
//看牌
lookPoker(gaojin, hm);
lookPoker(huowu, hm);
lookPoker(me, hm);
lookPoker(dipai, hm);
}
public static void lookPoker(TreeSet<Integer> ts, HashMap<Integer, String> hm) {
for(Integer index : ts) {
System.out.print(hm.get(index) + " ");
}
System.out.println();
}
}
输出:
方片3 方片4 红桃5 黑桃5 红桃6 方片7 梅花7 黑桃8 红桃9 黑桃9 方片10 红桃Q 黑桃Q 方片Q 红桃K 红桃2 大王
红桃3 梅花4 梅花5 黑桃7 红桃8 梅花8 方片9 梅花9 黑桃J 梅花Q 梅花K 红桃A 黑桃A 方片A 梅花A 黑桃2 梅花2
黑桃3 梅花3 红桃4 黑桃4 方片5 黑桃6 方片6 梅花6 红桃7 红桃10 黑桃10 梅花10 红桃J 方片J 梅花J 方片K 小王
方片8 黑桃K 方片2