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,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
随机推荐
- leetcode简单题目两道(5)
Problem Given an integer (signed bits), write a function to check whether it . Example: Given num = ...
- Scrum 冲刺博客第四篇
一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 新建立了一个list页面用来显示题目,并且创建了列表用来进行题目的存放,将 ...
- 用Ajax爬取今日头条图片集
Ajax原理 在用requests抓取页面时,得到的结果可能和浏览器中看到的不一样:在浏览器中可以正常显示的页面数据,但用requests得到的结果并没有.这是因为requests获取的都是原始 ...
- tr td 移动变色
jsp <table id="tableList" class="table table-hover"></table> css .t ...
- <深入理解JavaScript>学习笔记(1)_编写高质量JavaScript代码的基本要点
注:本文是拜读了 深入理解JavaScript 之后深有感悟,故做次笔记方便之后查看. JQuery是一个很强大的JavaScript 类库,在我刚刚接触JavaScript的就开始用了. JQuer ...
- Java - 方法的参数声明
给方法的参数加上限制是很常见的,比如参数代表索引时不能为负数.对于某个关键对象引用不能为null,否则会进行一些处理,比如抛出相应的异常信息. 对于这些参数限制,方法的提供者必须在文档中注明,并且在方 ...
- Vue生命周期学习
转自https://www.w3cplus.com/vue/vue-instances-and-life-cycles.html Vue实例虽然没有完全遵循MVVM模型,但Vue的设计无疑受到了它的启 ...
- [编程] C语言的结构体
结构体 struct 结构体名{} 变量名; 结构体变量: struct person{ char *name; int age; float score; } student; 成员的获取和赋值 / ...
- 分布式时序数据库InfluxDB
我们内部的监控系统用到分布式时序数据库InfluxDB http://www.ttlsa.com/monitor-safe/monitor/distributed-time-series-databa ...
- WC前的颓废——带花树
QAQ现在很不想写题解博客那就来写个算法吧QAQ... 带花树 题目 来看个题... UOJ79. 某机房里有\(n\)个OIer,其中有\(n\)个男生,\(0\)个女生.现在他们要两两配对. 有\ ...