java---Collections

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

/*
 * Collections:
 * 面试题:Collection和Collections有什么区别?
 * 		Collection是集合体系的最顶层,包含了集合体系的共性
 * 		Collections是一个工具类,方法都是用于操作Collection
 * 
 */
public class CollectionsDemo {
	public static void main(String[] args) {
		//static void swap(List list, int i, int j) :将指定列表中的两个索引进行位置互换
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(4);
		Collections.swap(list, 0, 1);
		
		System.out.println(list);
	
	}

	private static void method6() {
		//static void  sort(List<T> list) :按照列表中元素的自然顺序进行排序
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(4);
		list.add(3);
		list.add(2);
		
		Collections.sort(list);
		System.out.println(list);
	}

	private static void method5() {
		//static void shuffle(List list):傻否,随机置换  
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		Collections.shuffle(list);
		System.out.println(list);
	}

	private static void method4() {
		//static void reverse(List list)  :反转
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		
		Collections.reverse(list);
		System.out.println(list);
	}

	private static void method3() {
		//static void fill(List list, Object obj) :使用指定的对象填充指定列表的所有元素
		List<String> list = new ArrayList<String>();
		list.add("hello");
		list.add("world");
		list.add("java");
		System.out.println(list);
		
		Collections.fill(list, "android");
		
		System.out.println(list);
	}

	private static void method2() {
		//static void copy(List dest, List src) :是把源列表中的数据覆盖到目标列表
		//注意:目标列表的长度至少等于源列表的长度
		//创建源列表
		List<String> src = new ArrayList<String>();
		src.add("hello");
		src.add("world");
		src.add("java");
		
		//创建目标列表
		List<String> dest = new ArrayList<String>();
		dest.add("java");
		dest.add("java");
		dest.add("java");
		dest.add("java");
		Collections.copy(dest, src);
		System.out.println(dest);
	}

	private static void method() {
		//static int  binarySearch(List list, Object key) 使用二分查找法查找指定元素在指定列表的索引位置 
		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		
		int index = Collections.binarySearch(list, 4);
		System.out.println(index);
	}
}

  

1.1 斗地主案例

具体规则:

1. 组装54张扑克牌

2. 54张牌顺序打乱

3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。

4. 查看三人各自手中的牌、底牌

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.size());
		
	 	//洗牌
		Collections.shuffle(box);
		//System.out.println(box);
		
	 	//发牌
		ArrayList<String> 林志玲 = new ArrayList<String>();
		ArrayList<String> 林心如 = new ArrayList<String>();
		ArrayList<String> 舒淇 = new ArrayList<String>();
		
		//留三张底牌给地主
		for (int i = 0; i < box.size() - 3; i++) {
			/*
			 *  i = 0;i % 3 = 0;
			 *  i = 1;i % 3 = 1;
			 *  i = 2;i % 3 = 2;
			 *  i = 3;i % 3 = 0;
			 *  i = 4;i % 4 = 1;
			 *  i = 5;i % 5 = 2;
			 */
			
			if(i % 3 == 0) {
				林志玲.add(box.get(i));
			}
			else if(i % 3 == 1) {
				林心如.add(box.get(i));
			}
			else if(i % 3 == 2) {
				舒淇.add(box.get(i));
			}
		}
		
		System.out.println("林志玲:" + 林志玲);
		System.out.println("林心如:" + 林心如);
		System.out.println("舒淇:" + 舒淇);
	 
	
		System.out.println("底牌:");
	/*	System.out.println(box.get(box.size() - 1));
		System.out.println(box.get(box.size() - 2));
		System.out.println(box.get(box.size() - 3));*/
		
		for (int i = box.size() - 3; i < box.size(); i++) {
			System.out.println(box.get(i));
		}
	}
	
}

  

 

个人积累:

import java.util.ArrayList;
import java.util.*;

/*
 * Collections:
 * 		Collection和Collections有什么区别?
 * 		Collection是集合体系的最顶层,包含了集合体系的共性
 * 		Collections是一个工具类,方法都是用于操作Collection
 * 
 */
public class CollectionsDemo {
	public static void main(String[] args) {
		List <Integer> list=new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		list.add(5);
		list.add(6);
		int index=Collections.binarySearch(list,4);
		System.out.println(index);//3
		
		/*
		 * copy()函数,把原列表中的数据覆盖到目标列表
		 * 对于copy和fill问题。注意函数的长度问题。
		 */
		
		//创建目标函数
		List<Integer> dst=new ArrayList<Integer>();
		dst.add(0);
		dst.add(0);
		dst.add(0);
		dst.add(0);
		dst.add(0);
		dst.add(0);
		Collections.copy(dst,list);
		//dst=[1, 2, 3, 4, 5, 6]
		//list=[1, 2, 3, 4, 5, 6]
		System.out.println("dst="+dst);
		System.out.println("list="+list);
		
		//创建目标列表
		List<Integer> destList=new ArrayList<Integer>();
		destList.add(1);
		destList.add(2);
		destList.add(3);
		destList.add(4);
		destList.add(5);
		Collections.fill(destList, 1111);//将列表中的内容全部替换成111
		System.out.println("destlist="+destList);
		//destlist=[1111, 1111, 1111, 1111, 1111]
		
		Collections.reverse(list);
		System.out.println("list反转="+list);//list反转=[6, 5, 4, 3, 2, 1]
		
		Collections.sort(list);//排序
		System.out.println("list排序="+list);//list排序=[1, 2, 3, 4, 5, 6]
		//默认从小到大的升序。
	}
}

  

posted @ 2019-07-05 01:19  薄眠抛却陈年事。  阅读(259)  评论(0编辑  收藏  举报