您的位置:首页 > 其它

Collections类使用,模拟斗地主洗牌

2014-12-01 09:40 295 查看
Collections一个操作集合的工具类,提供的方法都是静态方法,构造方法已被私有化。

package com;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Test {
public static void main(String[] args) {

System.out.println("--------洗牌--------");
List<Integer> list = new ArrayList<Integer>();
// 添加54张牌,每个i对应一张牌
for (int i = 0; i < 54; i++) {
list.add(i);
}

Collections.shuffle(list); // 洗牌(打乱顺序)
// 三个人的牌
List<Integer> list1 = new ArrayList<Integer>();
List<Integer> list2 = new ArrayList<Integer>();
List<Integer> list3 = new ArrayList<Integer>();
// 底牌
List<Integer> dipai = new ArrayList<Integer>();

for (int i = 0; i < 51; i += 3) {
list1.add(list.get(i));
list2.add(list.get(i + 1));
list3.add(list.get(i + 2));
}
dipai.add(list.get(51));
dipai.add(list.get(52));
dipai.add(list.get(53));

System.out.println("第一个人的牌:" + list1);
System.out.println("第二个人的牌:" + list2);
System.out.println("第三个人的牌:" + list3);
System.out.println("底牌:" + dipai);

System.out.println("----------排序----------");
List<String> list_sort = new ArrayList<String>();
list_sort.add("ddd");
list_sort.add("bbb");
list_sort.add("aaa");
list_sort.add("ccc");
System.out.println("排序前:" + list_sort);
Collections.sort(list_sort);
System.out.println("排序后:" + list_sort);

System.out.println("----------反转----------");
List<String> list_reverse = new ArrayList<String>();
list_reverse.add("111");
list_reverse.add("444");
list_reverse.add("999");
list_reverse.add("000");
System.out.println("反转前:" + list_reverse);
Collections.reverse(list_reverse);
System.out.println("反转后:" + list_reverse);

System.out.println("----------返回最大最小值----------");
List<Integer> list_max_min = new ArrayList<Integer>();
list_max_min.add(3);
list_max_min.add(20);
list_max_min.add(12);
list_max_min.add(9);
System.out.println("最大值:" + Collections.max(list_max_min));
System.out.println("最小值:" + Collections.min(list_max_min));
}
}


运行结果:

--------洗牌--------
第一个人的牌:[25, 33, 41, 14, 3, 46, 39, 51, 50, 45, 2, 40, 6, 42, 15, 21, 30]
第二个人的牌:[53, 32, 13, 38, 11, 24, 8, 43, 22, 7, 9, 4, 49, 35, 36, 16, 27]
第三个人的牌:[48, 47, 18, 1, 26, 31, 17, 5, 20, 23, 34, 28, 29, 52, 0, 44, 10]
底牌:[19, 37, 12]
----------排序----------
排序前:[ddd, bbb, aaa, ccc]
排序后:[aaa, bbb, ccc, ddd]
----------反转----------
反转前:[111, 444, 999, 000]
反转后:[000, 999, 444, 111]
----------返回最大最小值----------
最大值:20
最小值:3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: