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,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
随机推荐
- vue监听不到props中的值时
已解决: watch: { data: { immediate: true, handler: function(newVal) { console.log(newVal); } } },
- Delphi 通得进程ID获取主窗口句柄
只知道进程ID,获取主窗口句柄的方法如下: 通过EnumWindows枚举所有窗口 使用GetWindowThreadProcessID,通过窗口句柄获取进程ID 比便获取的进程ID与当前已知的进程I ...
- SQL Serever学习6——数据表
数据表 表的构成 数据库中的基本表由记录(行)和字段(列)构成,SQLServer2008每个表可以有1024个列,每个列可以有8060字节(不包括iamge,ntext,text类型). 记录(Re ...
- 标准Trie字典树学习二:Java实现方式之一
特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! 系列文章: 1. 标准Trie字典树学习一:原理解析 2.标准T ...
- MVC中学到的小知识(MVC中的跳转,传参)
1.mvc中视图中的href="XXX",这个XXX是控制器地址,不是另一个视图.(这里的href语句只能转向控制器,不能直接转向视图),如果要实现转向视图,可以先转到控制器,然后 ...
- vi 编辑器使用中常见的命令
原创作品,转载请在文章头部(显眼位置)注明出处:https://www.cnblogs.com/sunshine5683/p/10014724.html 要在linux学习的路上越走越远,总结是必不可 ...
- C#解析PDF
C#解析PDF的方式有很多,比较好用的有ITestSharp和PdfBox. PDF内容页如果是图片类型,例如扫描件,则需要进行OCR(光学字符识别). 文本内容的PDF文档,解析的过程中,我目前仅发 ...
- 一步一步实现web程序信息管理系统之三----登陆业务逻辑实现(验证码功能+参数获取)
本篇紧接着上一篇文章[一步一步实现web程序信息管理系统之二----后台框架实现跳转登陆页面] 验证码功能 一般验证码功能实现方式为,前端界面访问一个url请求,后端服务代码生成一个图片流返回至浏览器 ...
- 使用javascript调用android代码
1.使用webview对象的addJavascriptInterface方法 2.addJavascriptInterface方法有两个参数,第一个参数就是我们一般会实现一个自己的类,类里面提供我们要 ...
- laravel开发之-安装汉化语言包
第一种方法: 1.输入命令:composer require "overtrue/laravel-lang:dev-master" 2.将config/app.php中命令“Ill ...