Java_Collections工具类
Collections 工具类
* Collection与Collections区别
Collection 接口,(大部分集合类的实现接口)
Collections 工具类(针对列表)
* Collections工具类常用方法
1.父类的引用指向子类的对象(复习) 2.sort(List list)排序 3.sort(List list, Comparator comparator);排序 4.binarySearch,搜索指定元素索引,前提列表必须有序 5.reverse反转 6.重新洗牌shuffle方法 7.swap交换,交换两个索引位置元素,Collections.swap(list, 1, 2);
* 测试Collections工具类方法代码:
package method; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/***
* 1.父类的引用指向子类的对象
* 2.sort(List list)排序
* 3.sort(List list, Comparator comparator);排序
* 4.binarySearch,搜索指定元素索引,前提列表必须有序
* 5.reverse反转
* 6.重新洗牌shuffle
* 7.swap交换,交换两个索引位置元素,Collections.swap(list, 1, 2);
* @author Administrator
*
*/
public class CollectionsDemo {
public static void main(String[] args) {
List list=new ArrayList(); //添加测试数据
list.add("a");
list.add("b");
list.add("d");
list.add("c");
list.add("e"); System.out.println(Arrays.toString(list.toArray()));
//sort排序,升序
Collections.sort(list); System.out.println(Arrays.toString(list.toArray())); //使用sort降序排序
Collections.sort(list, new Comparator<String>(){ @Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
int result=o2.length()-o1.length();
int length=result>0?o2.length():o1.length(); char[]a1=o1.toCharArray();
char[]a2=o2.toCharArray();
for(int i=0;i<length;i++){
if(a1[i]>a2[i]){
return -1;
}else if(a1[i]==a2[i]){
return 0;
}else{
return 1;
}
}
return result;
}
}); System.out.println(Arrays.toString(list.toArray()));
//二分法检测元素索引
int indexResult = Collections.binarySearch(list, "c"); System.out.println(indexResult); //reverse反转
Collections.reverse(list);
System.out.println(Arrays.toString(list.toArray())); //重新洗牌shuffle
Collections.shuffle(list);
System.out.println(Arrays.toString(list.toArray())); //swap交换,交换两个索引位置元素
Collections.swap(list, 1, 2);
System.out.println(Arrays.toString(list.toArray()));
}
}
Collections常用方法测试
* 模拟斗地主,发牌代码
package method; import java.util.ArrayList;
import java.util.Collections; /***
* 模拟斗地主,洗牌
* @author Administrator
*
*/
public class Collections_card { public static void main(String[] args) {
ArrayList cards = new ArrayList(); ArrayList play1 = new ArrayList();
ArrayList play2 = new ArrayList();
ArrayList play3 = new ArrayList(); ArrayList dipai = new ArrayList();
//54张牌
for(int i=0;i<54;i++){
cards.add(i);
}
Collections.shuffle(cards);
//三个玩家分牌
for(int i=0;i<51;i+=3){
play1.add(cards.get(i));
play2.add(cards.get(i+1));
play3.add(cards.get(i+2));
}
//底牌
for(int i=51;i<54;i++){
dipai.add(cards.get(i));
} //输出检查效果
System.out.println("玩家一:"+play1);
System.out.println("玩家二:"+play2);
System.out.println("玩家三:"+play3);
System.out.println("底牌:"+dipai);
}
}
模拟斗地主发牌
Java_Collections工具类的更多相关文章
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Android—关于自定义对话框的工具类
开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...
- [转]Java常用工具类集合
转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...
- js常用工具类.
一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...
- Guava库介绍之实用工具类
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是我写的Google开源的Java编程库Guava系列之一,主要介 ...
- Java程序员的日常—— Arrays工具类的使用
这个类在日常的开发中,还是非常常用的.今天就总结一下Arrays工具类的常用方法.最常用的就是asList,sort,toStream,equals,copyOf了.另外可以深入学习下Arrays的排 ...
- .net使用正则表达式校验、匹配字符工具类
开发程序离不开数据的校验,这里整理了一些数据的校验.匹配的方法: /// <summary> /// 字符(串)验证.匹配工具类 /// </summary> public c ...
- WebUtils-网络请求工具类
网络请求工具类,大幅代码借鉴aplipay. using System; using System.Collections.Generic; using System.IO; using System ...
- JAVA 日期格式工具类DateUtil.java
DateUtil.java package pers.kangxu.datautils.utils; import java.text.SimpleDateFormat; import java.ut ...
随机推荐
- wxPython 的简单框架实例
#coding:utf-8 import wx def load(event): file = open(filename.GetValue(),'r') contents.SetValue(file ...
- Python学习笔记-基础2
1.列表list 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 1.定义列表 names = ["Ronaldo","Messi" ...
- Redis-06.Cluster
Redis Cluster是一个高性能高可用的分布式系统.由多个Redis实例组成的整体,数据按照一致性哈希算法存储分布在多个Redis实例上,并对使用虚拟槽(Slot)对一致性哈希算法进行改进,通过 ...
- 与其他相似软件对比,win10中个人助理conrtana具备哪些独特的功能
目前,Cortana 可以回答各种口头问题,直接设置提醒,或者提供位置导航,并支持语音命令处理各项事务,而且随时间的推移学习更多内容,从而变得更加个性化和实用.简单而言,集成在 Edge 浏览器中的 ...
- Java虚拟机:内存分配策略
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! Java中提倡的自动内存管理机制最终可以归结为自动化的解决两个问题:给对象分配内存和回收分配给对象的内存.在之前的博客中已经详细讲解了内存 ...
- ZKWeb网页框架2.1正式发布
2.1.0更新的内容有 更新引用类库 NHibernate 5.1.0 Npgsql 3.2.7 MySqlConnector 0.37.0 Dapper 1.50.4 Dommel 1.10.1 Z ...
- [Postman]Cookies(12)
Postman的本机应用程序提供 MANAGE COOKIES 模式,允许您编辑与每个域关联的Cookie. 前往cookie经理 要打开MANAGE COOKIES模式,请单击“ 发送”按钮下的 ...
- java中的全局变量如何实现?ThreadLocal~
全局变量就是不管你在哪里,都能够直接引用的变量,还不用担心各种问题.每个语言都有自己的全局变量,我想! 一般地,面向过程的语言当中,可能就是一个声明在最前面的变量,后面的代码直接引用,就成了全局变量! ...
- SQLServer脚本编写
临时接到通知,需要临时编写一个SQL Server的脚本,供出差的同事使用一下. 我当时心想这个SQL Server脚本听都没听说过,但是组织说决定就是你了,那我就只能硬着头皮上了. 脚本实现的功能比 ...
- 3-7 Vue中的列表渲染
举个案例:循环data中的list的值在div中,并显示相应的index值. 关于数组的循环: //显示效果如下图: //一般的列表渲染最好带一个key值,要把key值设置为唯一值的话,可以选择in ...