标签:count() name 参数 ted rri 方式 必须 实现 ons
一个内比较器,类可以和自己比较
compareTo() 自然比较方法
public interface Comparable<T>{
public int compareTo(T o);
}
public class Book implements Comparable<Book>{
String name;
int price;
public Book(String name,int price){
super();
this.name=name;
this.price=price;
}
public int getPrice(){
return price;
}
@override
public int CompareTo(Book b){
return this.price - b.getPrice();
}
}
一个对象Collections,Arrays想自己调用sort进行自动排序,对象必须实现Comparable接口
类本身不支持排序(没有实现comparable接口)
可建立一个类比较器来进行排序
public interface Comparator<T>{
// 这个函数必须实现
int compare(T o1,T o2);
// 这个函数可以不用实现
boolean equals(Object obj);
}
public class BookComparator implements Comparator<Book>{
@override
public int compare(Book b1,Book b2){
return b1.getAge()- b2.getAge();
}
}
public class Book{
String name;
int price;
public Book(String name,int price){
super();
this.name=name;
this.price=price;
}
public int getPrice(){
return price;
}
public static void main(String[] args){
Book[] allBook=new Book[]{new Book("math",3),new Book("java",16)};
Arrays.sort(allBook,new BookComparator());
}
}
Comparable 是排序接口,只要类实现,该类就支持排序(内部排序)
Comparator 是比较器,控制某个类的次序,建立类的比较器来进行排序(外部比较器)
Comparator 是一种策略模式
由匿名类逐渐简化实现 lambda表达式
将方法作为参数进行传递的编程方法
在函数运行过程中,lambda都会还原成匿名类方式。
引入lambda表达式,会使代码更加紧凑,而不是各种接口和匿名类到处都有
聚合操作
1.stream 一系列元素,一串一串
2.管道 一系列的聚合操作
管道
类集 Collection.stream
数组 Arrays.stream(hs)
filter 匹配
distinct 去重
sorted 排序
sorted(Comparator
limit 保留
skip 忽略
mapToDouble 转换为double的流
map 转换为任意类型的流
forEach() 遍历每个数组
toArray() 转换为数组
min(Comparator
max(Comparator
count() 总数
findFirst() 第一个元素
get()
比较接口(Comparable ,Comparator)及流的聚合操作
标签:count() name 参数 ted rri 方式 必须 实现 ons
原文地址:https://www.cnblogs.com/GeekDanny/p/11736116.html