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));
} }
}
输出
30.3 Collections 集合体系的工具类的更多相关文章
- 集合中的工具类Collections和Arrays
集合框架的工具类: Collections: 方法sort(): List<String> list = new ArrayList<String>(); lis ...
- Java:集合框架的工具类
集合框架的工具类 Arrays:里面都是静态方法,直接用来对各种集合进行操作的公有方法. Collections:里面都是静态方法,直接用来对各种集合进行操作的公有方法. 包括: 1.asList将数 ...
- 12:集合map、工具类
一.map集合 Map:一次添加一对元素.Collection 一次添加一个元素. Map也称为双列集合,Collection集合称为单列集合. 其实map集合中存储的就是键值对(结婚证书), map ...
- 【JAVA集合框架之工具类】
一.概述 JAVA集合框架中有两个很重要的工具类,一个是Collections,另一个是Arrays.分别封装了对集合的操作方法和对数组的操作方法,这些操作方法使得程序员的开发更加高效. public ...
- Java:集合,Arrays工具类用法
1. 描述 Arrays工具类提供了针对数组(Array)的一些操作,比如排序.搜索.将数组(Array)转换列表(List)等等,都为静态(static)方法: binarySearch - 使用二 ...
- Java笔记(二十四)……集合工具类Collections&Arrays
Collections 集合框架的工具类,方法全部为静态 Collections与Collection的区别 Collection是集合框架的一个顶层接口,里面定义了单列集合的共性方法 Collect ...
- java的集合工具类Collections
集合框架的工具类. Collections:集合框架的工具类.里面定义的都是静态方法. Collections和Collection有什么区别? Collection是集合框架中的一个顶层接口,它里面 ...
- Java 集合框架工具类
Collections Arrays Collections 集合框架的工具类, 里面的方法都是静态的, 可以直接使用类名调用 常用方法 1. sort(List<T> list); // ...
- Java中的工具类和新特性
1:Collections集合框架工具类: /* 集合框架的工具类. Collections:集合框架的工具类.里面定义的都是静态方法. Collections和Collection有什么差别? Co ...
随机推荐
- Win2012+Nginx+IIS+xxfpm(服务版)
这次做了一个项目部署在环境为win2012+nginx1.13.5+mysql5.6+php7的环境下,服务器是阿里云的 由于之前没有这种经验,遇到了点坑(据参考文章里说的这坑还有些年份了),最开始自 ...
- 基于.NetCore3.1搭建项目系列 —— 使用Swagger做Api文档 (上篇)
前言 为什么在开发中,接口文档越来越成为前后端开发人员沟通的枢纽呢? 随着业务的发张,项目越来越多,而对于支撑整个项目架构体系而言,我们对系统业务的水平拆分,垂直分层,让业务系统更加清晰,从而产生一系 ...
- Python 之 copy() 与 deepcopy() 之间的区别
在 Python 之中,如果想要复制一个对象就免不了要理解浅复制与深复制.这也是 Python 与其他语言的区别之一. Python 的数据存储方式与其他语言不同.当你定义了一个变量: a = [, ...
- 是时候了解Java Socket底层实现了
在Java中,提供了一系列Socket API,可以轻松建立两个主机之间的连接.读取数据,那底层到底怎么实现,很少人去关心.这其实最终还是通过调用操作系统提供得Socket接口完成(TCP/IP是由操 ...
- mysql刷题(不定时更新)
面试阶段大家基本都会问一些mysql的题,具体的高深理论以后再慢慢补充,但是刷题是不可避免的,下面直接上货 创建/删除表和索引系列 创建表 CREATE TABLE if not exists `te ...
- Go语言之Go语言变量
GO 语言变量 Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性. 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名.常量名.函 ...
- 题解 P1305 【新二叉树】
好像没有人搞\(\color{green}map\)反映,没有人用\(\color{green}map\)反映搞并查集! \(\color{green}map\)第一个好处是作为一个数组,可以开很大! ...
- 【Unity游戏开发】跟着马三一起魔改LitJson
一.引子 在游戏开发中,我们少不了和数据打交道,数据的存储格式可谓是百花齐放,xml.json.csv.bin等等应有尽有.在这其中Json以其小巧轻便.可读性强.兼容性好等优点受到广大程序员的喜爱. ...
- ubuntu 18.04下virtualbox安装windows虚拟机+增强功能+secureCRT
先强调一下,我是在Ubuntu里安装windows虚拟机,如果要看如何安装linux虚拟机的话,那么你走错地方了. 我一直使用Linux系统做开发的,选择Ubuntu是因为多数常用软件对Ubuntu支 ...
- Hive手写SQL案例
1-请详细描述将一个有结构的文本文件student.txt导入到一个hive表中的步骤,及其关键字 假设student.txt 有以下几列:id,name,gender三列 1-创建数据库 creat ...