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 ...
随机推荐
- Day1T3小w的魔术扑克——图论
为什么不搞\(T2\)??? 因为我太菜了,那题我是真的搞不出来 题目描述 链接:https://ac.nowcoder.com/acm/contest/1100/C 来源:牛客网 小\(w\)喜欢打 ...
- Hacker101-CTF | Postbook
Hacker101-CTF | Postbook mirror王宇阳 水平有限,不足之处还望指教 ^_^ 看看这个一大堆英文介绍 With this amazing tool you can writ ...
- Xamarine ContentPage.ToolbarItems 未显示/不显示在界面
将页面封装到NavigationPage中.在App.xaml.cs的构造函数中 将 MainPage = new MainPage(); 替换为 MainPage = new NavigationP ...
- 【简说Python WEB】flask-mail电子邮件异步Asynchronous
系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境:virutalenv Python的版本:Python 3.6.9 flask-mail电子邮件异步Asynchronou ...
- 1. postman使用
postman使用教程: https://blog.csdn.net/fxbin123/article/details/80428216 http://bayescafe.com/tools/use- ...
- Linux下反弹shell笔记
0x00 NC命令详解 在介绍如何反弹shell之前,先了解相关知识要点. nc全称为netcat,所做的就是在两台电脑之间建立链接,并返回两个数据流 可运行在TCP或者UDP模式,添加参数 —u 则 ...
- CF33C Wonderful Randomized Sum 题解
原题链接 简要题意: 你可以无限次的把该数组的一个前缀和后缀 \(\times -1\),问最终的最大序列和. 这题盲目WA了数次才知道本质 这题89个数据吊打std CF真好啊,发现一个错后面就不测 ...
- In Triangle Test / To Left Test
2020-01-09 14:51:29 如何高效的判断一个点是否是包含在一个三角形的内部是计算几何里的一个基础问题. In Triangle Test问题也可以用来解决计算几何里的一个基础问题就是 凸 ...
- Contest 160
2019-10-29 16:36:24 总体感受:有一段时间没有打比赛,手居然有生疏的感觉,这次肯定是要掉分了,然后在做combination问题的时候没有敲对代码,很伤. 注意点:依然需要多练习,很 ...
- 彻底明白equals和hashCode
equals和hashCode方法 equals 我们知道equals是用来比较两个对象是否相等的,比如我们常用的String.equals方法 @Test public void test() { ...