Collections類使用,模擬鬥地主洗牌

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


 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章