依赖:
<dependency>
<groupId>com.googlecode.lambdaj</groupId>
<artifactId>lambdaj</artifactId>
<version>2.3.3</version>
</dependency>
计算平均值:
@Test
public void testAvg() {
ImmutableList<Integer> list = ImmutableList.of(1,2,3,4,10);
Number avg = Lambda.avg(list);
System.out.println(avg);
}
统计每个元素出现的次数:
@Test
public void testCount() {
ImmutableList<Integer> list = ImmutableList.of(1,2,3,4,10,1,2,3,4);
Map<Object, Integer> count = Lambda.count(list);
for(Map.Entry<Object,Integer> entry : count.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
sort排序:
内部使用的 Collections.sort() 方法进行排序的。
@Test
public void testSort() {
ArrayList<Person> list = new ArrayList<>();
list.add(new Person(1051,"Tom","123"));
list.add(new Person(1002,"Jack","123"));
list.add(new Person(1021,"Ros","123"));
list.add(new Person(1041,"Pink","123"));
list.add(new Person(1071,"Jerrt","123"));
List<Person> sortList = Lambda.sort(list, Lambda.on(Person.class).getId());
for (Person person : sortList) {
System.out.println(person);
}
}
joinFrom 连接元素
@Test
public void testJoinForm() {
String idStr = Lambda.joinFrom(list).getName();
String pwdStr = Lambda.joinFrom(list,"-").getPassword();
System.out.println(idStr);
System.out.println(pwdStr);
}
selectMax,selectMin(最大/最小 对象)
/**
* 按照某个属性值 最大/最小 的对象
*/
@Test
public void testSelectMax() {
//获取年龄最大的 person 对象
Person maxIdPer = Lambda.selectMax(list, Lambda.on(Person.class).getId());
//
Person minIdPer = Lambda.selectMin(list, Lambda.on(Person.class).getId());
System.out.println(maxIdPer);
System.out.println(minIdPer);
}
获取的是某个属性值最大或最小的对象实例。
max、min 获取最大\最小的属性值
@Test
public void testMinMax() {
int maxId = Lambda.max(list,Lambda.on(Person.class).getId());
String minName = Lambda.min(list,Lambda.on(Person.class).getName());
System.out.println(maxId);
System.out.println(minName);
}
获取的是集合中某个最大或最小的属性值。
对集合中某一个属性进行求和运算:
@Test
public void testSum() {
int sumId = Lambda.sum(list,Lambda.on(Person.class).getId());
int sumFromId = Lambda.sumFrom(list).getId();
System.out.println(sumId);
System.out.println(sumFromId);
}
对集合中某个属性值进行求和运算,可以使用 sum 或 sumFrom 函数。
抽取元素属性组成集合:
@Test
public void testExtract() {
List<String> names = Lambda.extract(list, Lambda.on(Person.class).getName());
for (String name : names) {
System.out.println(name);
}
}
将集合中某一属性全部取出,单独组成一个集合。