zoukankan      html  css  js  c++  java
  • javaCollections

    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]
    		//默认从小到大的升序。
    	}
    }
    

      

    一纸高中万里风,寒窗读破华堂空。 莫道长安花看尽,由来枝叶几相同?
  • 相关阅读:
    彻悟大师语录
    读书
    复变函数简要
    【洛谷P4781】【模板】拉格朗日插值
    【洛谷P4585】火星商店问题
    【YbtOJ#593】木棍问题
    【YbtOJ#893】带权的图
    【洛谷P4735】最大异或和
    【洛谷P5787】二分图 /【模板】线段树分治
    【ARC098D】Donation
  • 原文地址:https://www.cnblogs.com/byczyz/p/11136003.html
Copyright © 2011-2022 走看看