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

输出

30.3 Collections 集合体系的工具类的更多相关文章

  1. 集合中的工具类Collections和Arrays

    集合框架的工具类: Collections: 方法sort(): List<String> list = new ArrayList<String>();        lis ...

  2. Java:集合框架的工具类

    集合框架的工具类 Arrays:里面都是静态方法,直接用来对各种集合进行操作的公有方法. Collections:里面都是静态方法,直接用来对各种集合进行操作的公有方法. 包括: 1.asList将数 ...

  3. 12:集合map、工具类

    一.map集合 Map:一次添加一对元素.Collection 一次添加一个元素. Map也称为双列集合,Collection集合称为单列集合. 其实map集合中存储的就是键值对(结婚证书), map ...

  4. 【JAVA集合框架之工具类】

    一.概述 JAVA集合框架中有两个很重要的工具类,一个是Collections,另一个是Arrays.分别封装了对集合的操作方法和对数组的操作方法,这些操作方法使得程序员的开发更加高效. public ...

  5. Java:集合,Arrays工具类用法

    1. 描述 Arrays工具类提供了针对数组(Array)的一些操作,比如排序.搜索.将数组(Array)转换列表(List)等等,都为静态(static)方法: binarySearch - 使用二 ...

  6. Java笔记(二十四)……集合工具类Collections&Arrays

    Collections 集合框架的工具类,方法全部为静态 Collections与Collection的区别 Collection是集合框架的一个顶层接口,里面定义了单列集合的共性方法 Collect ...

  7. java的集合工具类Collections

    集合框架的工具类. Collections:集合框架的工具类.里面定义的都是静态方法. Collections和Collection有什么区别? Collection是集合框架中的一个顶层接口,它里面 ...

  8. Java 集合框架工具类

    Collections Arrays Collections 集合框架的工具类, 里面的方法都是静态的, 可以直接使用类名调用 常用方法 1. sort(List<T> list); // ...

  9. Java中的工具类和新特性

    1:Collections集合框架工具类: /* 集合框架的工具类. Collections:集合框架的工具类.里面定义的都是静态方法. Collections和Collection有什么差别? Co ...

随机推荐

  1. Python 之 copy() 与 deepcopy() 之间的区别

    在 Python 之中,如果想要复制一个对象就免不了要理解浅复制与深复制.这也是 Python 与其他语言的区别之一. Python 的数据存储方式与其他语言不同.当你定义了一个变量: a = [, ...

  2. vue后台管理系统权限处理

    vue后台管理系统权限 1.权限问题:用户和管理员进入管理系统看到的模块是不一样的,管理员看的的要比用户看到的多.需要用到动态加载路由,router.addRouters()来动态的挂载路由 // 1 ...

  3. 暴力+辗转相除法——N个数求和

    题目来源 PTA 团体程序设计天梯赛-练习集 L1-009 N个数求和 (20分) https://pintia.cn/problem-sets/994805046380707840/problems ...

  4. VS2019 C++动态链接库的创建使用(3) - 如何导出类

    如何在动态链接库里导出一个类? ①在库头文件里增加一个类声明,class DLL1_API Point是将类内所有成员都导出,如果只导出某个成员函数,则只需在对应的成员函数前加DLL1_API即可: ...

  5. spring boot devtools热部署

    问题1: Springloaded 在springboot2的maven的pom.xml 无法找到 解决方法:在idea通过View->Tool Windows->Maven Projec ...

  6. Visual Studio2019+OpenCV3.4.9环境搭建

    让人头疼的vs2019+opencv环境配置 准备: visual studio2019: opencv 3.4.9: 耐心: 说明:vs2019属性管理器没有Microsoft.Cpp.x64.us ...

  7. 【洛谷】P2444 [POI2000]病毒——AC自动机

    题目链接 题目描述 二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码.如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的.现在委员会已经找出了所有的病毒代码段, ...

  8. 从ISTIO熔断说起-轻舟网关熔断

    最近大家经常被熔断洗脑,股市的动荡,让熔断再次出现在大家眼前.微服务中的熔断即服务提供方在一定时间内,因为访问压力太大或依赖异常等原因,而出现异常返回或慢响应,熔断即停止该服务的访问,防止发生雪崩效应 ...

  9. 02.Go语言开发环境搭建(新版)

    安装Go语言及搭建Go语言开发环境 注意:Go语言1.14版本之后推荐使用go modules管理以来,也不再需要把代码写在GOPATH目录下了 下载 下载地址 Go官网下载地址:https://go ...

  10. C的变量类型、作用域与生命周期的总结

    C的变量类型.作用域与生命周期的总结 最近在看"C Programing Language" (Kernighan, Ritchie)关于外部变量的讨论,之前在学C的时候对这些ex ...