/*
* 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)); } } }
输出