020.1.1 collections集合工具类
内容:常见需求以及使用—逆转比较器顺序,最值和同步方法
collections类的方法都是静态方法

强行逆转比较器的顺序
例子:
//##主函数.java
List<String> list = new ArrayList<String>();
list.add("wg");
list.add("wanng");
list.add("qio");
list.add("duai");
System.out.println(list);
Collections.sort(list,Collections.reverseOrder(new ComparableByLength()));
System.out.println(list); //##ComparableByLength.java
public class ComparableByLength implements Comparator
{ @Override
public int compare(Object o1, Object o2)
{
String str1 = (String)o1;
String str2 = (String)o2;
int temp = str1.length() - str2.length();
return temp == 0?str1.compareTo(str2):temp;
}
}
###############################################
最值和同步方法
泛型使用
public static void main(String[] args)
{
Collection<String> coll = new ArrayList<String>();
coll.add("ang.");
coll.add("wang");
coll.add("xiong");
coll.add("zhong");
String max = getMax(coll);
System.out.println(max);
}
public static<T extends Comparable<? super T>> T getMax(Collection<? extends T> coll){
Iterator<? extends T> it = coll.iterator();
T max = it.next();
while(it.hasNext()){
T temp = it.next();
if(temp.compareTo(max)>0){
max = temp;
}
}
return max; }
迭代器从哪里来,泛型就和谁一样

#################example_063Comparable自定义排序
public class Employee implements Comparable<Employee>
{
private int id;
private String name;
private int age;
public Employee(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
@Override
public int compareTo(Employee o)
{
if(id > o.id){
return 1;
}
else if(id < o.id){
return -1;
}
return 0;
}
@Override
public String toString()
{
return "Employee [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
employee.java
public class Test
{
public static void main(String[] args)
{
List<Employee> list = new ArrayList<Employee>();
list.add(new Employee(3, "python", 5));
list.add(new Employee(2, "c", 27));
list.add(new Employee(6, "java", 10));
System.out.println("排序前:");
for(Employee employee: list){
System.out.println(employee);
}
System.out.println("排序后:");
Collections.sort(list);
for(Employee employee:list){
System.out.println(employee);
}
}
}
Test.java
020.1.1 collections集合工具类的更多相关文章
- Collections集合工具类,集合嵌套,集合综合案例斗地主
1 Collections集合工具类 (可以对比Arrays工具类共同记忆) 常用方法: 例: import java.util.ArrayList; import java.util.Collect ...
- java第十九天,Collections集合工具类的使用
Collections Java中集合都实现了Collection接口,那么针对集合一些特定的功能,有没有一个接口或类能够统一的集成一些集合必要的功能呢?当然能.它就是--Collections集合工 ...
- Collections集合工具类常用的方法
java.utils.Collections //是集合工具类,用来对集合进行操作.部分方法如下: public static <T> boolean addAll(Collection& ...
- Collections集合工具类的常用方法
Collections集合工具类的方法 addAll与shuffle import java.util.ArrayList; import java.util.Collections; /* - ja ...
- 可变参数和Collections集合工具类
可变参数 /** * 可变参数:jdk1.5后出现的新特性 * 使用前期: * 当方法的参数列表数据类型已经确定的时候但是参数的个数不确定的时候就可以使用可变参数 * 使用格式:定义方法的时候使用 * ...
- Collections 集合工具类
集合工具类 包括很多静态方法来操作集合list 而Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序.搜索以及线程安全等各种操作. 1) 排序( ...
- Collections集合工具类的方法_sort(List)和sort(List,Comparator)方法
Comparator比较器 我们还是先研究这个方法 public static <T> void sort(List<T> list):将集合中元素按照默认规则排序. 不过这次 ...
- 可变参数和Collections集合工具类的方法_addAll&shuffle
可变参数 可变参数:是JDK1.5之后出现的新特性 使用前提:当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数 使用格式:定义方法时使用 ~修饰符 返回值类型 方法名(数据类 ...
- [Guava学习笔记]Collections: 集合工具类
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3861431.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
随机推荐
- R语言数据重塑cbind+rbind+merge+ melt+cast
R语言中的数据重塑是关于变化的数据分为行和列的方式.大多数R地数据处理的时候是通过将输入的数据作为一个数据帧进行.这是很容易提取一个数据帧的行和列数据,但在某些情况,当我们需要的数据帧的格式是不同的来 ...
- Scrum 冲刺博客第六篇
一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 判断用户输入的答案是否正确并将其输出到界面中 今天计划完成的工作 对排行榜 ...
- 【angular5 项目积累总结】项目公共样式
main.css @font-face { font-family: 'wf_segoe-ui_normal'; src: local('Segoe UI'),url('../fonts/segoe- ...
- WordPress主题开发:主题初始化
在最简单的情况下,一个WordPress主题由两个文件构成: index.php ------------------主模版 style.css -------------------主样式表(注意 ...
- [SQL Server] 无法连接到本地数据库
打开SQL Server配置管理器 启用下图两个协议 打开SQL Server服务 这一步可能出现这种情况: 故障原因是,安装Visual Studio 2012的时候,自动安装“Microsoft ...
- SQL Serever学习12——数据库的备份和还原
公司的服务器奔溃了,事先没相应的保护措施,使得公司遭到了较大损失,为了以后不再出现类似事件,在系统中引入备份机制,使得数据库被破坏后损失降到最低. 数据的导出和导入 数据转换服务 数据转换服务DTS( ...
- web弹出对话框
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('请输入 ...
- 引入第三方js文件,报错
错误:Mixed Content: The page at 'https://localhost:44336/MENU' was loaded over HTTPS, but requested an ...
- yum卸载
完全卸载依赖 -- 正常安装 yum install sl -- 列出操作 yum history list sl -- 根据显示install操作的id进行删除 yum history undo { ...
- megajson 高性能的json序列化、反序列化工具
go 自带的 encoding/json 支持json的序列化和反序列化, 然而它是基于反射的,有下面几个缺点: 反射是性能差的代名词, 并且无法在编译时进行优化. 只有 Public 字段才可以,反 ...