1700453080
Trove的最大优势是在高性能上,在进行一般的增加、修改、删除操作时,Trove的响应时间比JDK的集合少一个数量级,比fastutil也会高很多,因此在高性能项目中要考虑使用Trove。
1700453081
1700453082
(3)lambdaj
1700453083
1700453084
lambdaj是一个纯净的集合操作工具,它不会提供任何的集合扩展,只会提供对集合的操作,比如查询、过滤、统一初始化等,特别是它的查询操作,非常类似于DBRMS上的SQL语句,而且也会提供诸如求和、求平均值等的方法,示例代码如下:
1700453085
1700453086
List<Integer>ints=new ArrayList<Integer>();
1700453087
1700453088
//计算平均值
1700453089
1700453090
Lambda.avg(ints);
1700453091
1700453092
//统计每个元素出现的次数,返回的是一个Map
1700453093
1700453094
Lambda.count(ints);
1700453095
1700453096
//按照年龄排序
1700453097
1700453098
List<Person>persons=new ArrayList<Person>();
1700453099
1700453100
Lambda.sort(persons, Lambda.on(Person.class).getAge()));
1700453101
1700453102
//串联所有元素的指定属性,输出为:张三,李四,王五
1700453103
1700453104
Lambda.joinFrom(persons).getName();
1700453105
1700453106
//过滤出年龄大于20岁的所用元素,输出为一个子列表
1700453107
1700453108
Lambda.select(persons, new BaseMatcher<Person>(){
1700453109
1700453110
@Override
1700453111
1700453112
public boolean matches(Object_person){
1700453113
1700453114
Person p=(Person)_person;
1700453115
1700453116
return p.getAge()>20;
1700453117
1700453118
}
1700453119
1700453120
public void describeTo(Description desc){
1700453121
1700453122
}
1700453123
1700453124
});
1700453125
1700453126
//查找出最大年龄
1700453127
1700453128
Lambda.maxFrom(persons).getAge();
1700453129
[
上一页 ]
[ :1.70045308e+09 ]
[
下一页 ]