详解 Collections类
2024-09-07 08:48:11
(请关注 本人“集合总集篇”博文——《详解 集合框架》)
有的同学可能会有这样的疑问 —— Collections类也是集合吗?
答曰:非也!
那为什么要讲解这个类呢?
答曰:此类为 针对集合操作 的工具类
Collections类:
概念:
针对集合操作 的工具类
首先,本人来展示下 这个类的API:
- 构造方法:
- static List EMPTY_LIST :
空的列表(不可变的)- static Map EMPTY_MAP
空的映射(不可变的)- static Set EMPTY_SET
空的 set(不可变的)
- 常用API:
- public static < T > void sort(List< T > list):
排序,默认按照自然顺序- public static < T > int binarySearch(List<?> list,T key):
二分查找- public static < T > T max(Collection<?> coll):
获取最大值- public static void reverse(List<?> list):
反转- public static void shuffle(List<?> list):
随机置换
可以看到,本人列举的常用API都是关于List的操作,这是因为List存储的数据都是有序的,而且是单列的,所以需要的操作就更灵活些。即便是双列的Map,在一定程度上也可以拆成单列的List(因为对于Map的操作,主要是针对“键元素”)
那么,本人在这里来讲解一个很有趣的例子 —— 模拟斗地主 的 洗牌和发牌 操作:
本人先来说明一下规则:
规则:
- 一共三个玩家
- 每个玩家按照顺序依次抽取扑克牌,没人总共抽取17张
- 剩余3张扑克牌作为底牌,由“地主”收取
由于本例仅展示发牌和看牌的操作,所以,大致操作流程如下:
- 将54张扑克牌依次存储一个ArrayList中(装进牌盒子)
- 打乱这54张扑克牌(洗牌)
- 按顺序给三个TreeSet依次发牌,并留三张牌存入另一个TreeSet中(发牌、理牌)
- 遍历这四个TreeSet(看牌)
现在,本人根据上面的讲解上代码:
首先,本人给出一个理牌器:
package about_collections;
import java.util.Comparator;
public class PokerSorter implements Comparator<String> {
public PokerSorter() {
}
@Override
public int compare(String poker1, String poker2) {
if(poker2.equals("☀")
|| (!poker1.equals("☀") && poker2.equals("
最新文章
- wp8 入门到精通 数据库更新字段(一)
- 2-1-1 GDI
- 【转】Nginx模块开发入门
- access_token的获取2
- vs2008 多人同时开发项目时的代码注释规范格式 分类: C#小技巧 2014-04-23 14:12 297人阅读 评论(0) 收藏
- A Game of Thrones(2) - Catelyn
- httpd基础配置和虚拟主机的配置方法
- AWS EC2实例Linux系统创建root用户并更改为root用户登录
- Java 学习笔记 IO流与File操作
- JSP数据库插入判断
- 将 Idea 常用快捷键 设置为 Eclipse 的快捷键
- The Usage of Lambda and Heap in the C++ STL
- android -------- NDK 入门指南
- Oracle存储过程编译卡死的解决方法
- About The Algorithm Simplification
- beginAppearanceTransition
- oracle undo表空间大小修改
- springboot-shiro chapter01&mdash;&mdash;创建springboot webmvc环境
- eclipse 下安装 lombok.jar
- php第一节(入门语法、数据类型)
热门文章