30.3 Collections 集合体系的工具类

/*
* Collections:
* 面试题:Collection和Collections有什么区别?
* Collection是集合体系的最顶层,包含了集合体系的共性
* Collections是一个工具类,方法都是用于操作Collection
*
* //static int binarySearch(List list, Object key) 使用二分查找法查找指定元素在指定列表的索引位置,必须根据列表元素的自然顺序对列表进行升序排序(通过 sort(List) 方法)
*
* //static void copy(List dest, List src) :是把源列表中的数据覆盖到目标列表
*
* //static void fill(List list, Object obj) :使用指定的对象填充指定列表的所有元素
*
* //static void shuffle(List list):傻否,随机置换
*
* //static void reverse(List list) :反转
*
* //static void sort(List<T> list) :按照列表中元素的自然顺序进行排序
*
*/

public class CollectionsDemo {
    public static void main(String[] args) {
//        method();
//        copyMethod();

        //shuffle 随机洗牌
        List list = new ArrayList();
        list.add("aa");
        list.add("cc");
        list.add("bb");

        Collections.shuffle(list);
        System.out.println(list);
    }

    private static void copyMethod() {
        //copy,目标集合元素个数必须大于等于源集合。
        List<String> list = new ArrayList<String>();
        list.add("aa");
        list.add("bb");

        List<String> list2 = new ArrayList<String>();
        list2.add("ww");
        list2.add("ww");
        list2.add("ww");
        Collections.copy(list2,list);
        System.out.println(list2);
    }

    private static void method() {
        //二分查找法查找指定元素,集合元素必须是按由小到大顺序排列的
        List<Integer> list = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);

        int num = Collections.binarySearch(list,2);
        System.out.println(num);
    }
}

输出

案例:

斗地主

package day30_HashSet;

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

/*
 *    模拟斗地主发牌
     买牌--装牌--洗牌--发牌
 */
public class CollectionsTest_斗地主 {
    public static void main(String[] args) {
        //买牌
        String[] arr = {"红桃","黑桃","梅花","方片"};
        String[] arr2 = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
        //装牌
        ArrayList<String> box = new ArrayList<String>();
        for(int i=0;i<arr.length;i++) {
            for(int j=0;j<arr2.length;j++) {
                box.add(arr[i]+arr2[j]);
            }
        }

        box.add("大王");
        box.add("小王");

//        System.out.println(box);
        //洗牌
        Collections.shuffle(box);
//        System.out.println(box);

        //发牌
        ArrayList<String> zhiling = new ArrayList<String>();
        ArrayList<String> shuangqing = new ArrayList<String>();
        ArrayList<String> qingxia = new ArrayList<String>();

        //留三张底牌
        for(int i=0;i<box.size()-3;i++) {
            if(i%3==0) {
                zhiling.add(box.get(i));
            }else if(i%3==1) {
                shuangqing.add(box.get(i));
            }else if(i%3==2) {
                qingxia.add(box.get(i));
            }
        }
        System.out.println("zhiling:"+zhiling);
        System.out.println("shuangqing:"+shuangqing);
        System.out.println("qingxia:"+qingxia);

        //底牌
        System.out.println("底牌:");
        for(int i=box.size()-3;i<box.size();i++) {
            System.out.println(box.get(i));
        }

    }
}

输出

原文地址:https://www.cnblogs.com/longesang/p/11271743.html