java8 comparingint_java8新特性学习笔记

package com.tmall.tac.biz;

import org.apache.commons.lang.StringUtils;

import java.util.*;

import java.util.function.Function;

import java.util.stream.Collectors;

/**

* Created on 18/7/31 by bingyin.gby.

*/

public class Java8Test {

public static void main(String[] args) {

//将1个判断输入值字符串否为空,非空则输出,否则赋予默认值

String s=null;

String brandId= Optional.ofNullable(s).orElse("123456");

List names= Arrays.asList("bingyingao","tieyi");

//遍历集合得到一个新的集合

List newNames= names.stream().filter(b-> StringUtils.contains(b,"tieyi")).map(a->"prefix"+a).collect(

Collectors.toList());

System.out.println("newNames:");

newNames.forEach(System.out::println);

//遍历原集合并且对原集合中对象进行操作???

names.stream().map(a->a+"sufix");

System.out.println("names:");

names.forEach(System.out::println);

new Java8Test().resetUserName();

//定义function函数并且调用:list转set

Function,Set> listToMap= list->list.stream().collect(Collectors.toSet());

Set names1=listToMap.apply(Arrays.asList("tieyi","tieyi","bingyingao"));

System.out.println("listToSet:");

names1.forEach(System.out::println);

//所有用户的年龄进行求和,reduce

new Java8Test().sumUserAge();

//所有用户的年龄最大、最小、平均,求sum

new Java8Test().intSummaryStatistics();

//根据年龄排序

new Java8Test().sortAgeAsc();

//遍历map集合

Map classUnit=new HashMap(){{

put("class1","stu1,stu2");

put("class2","stu2,stu3");

}};

classUnit.forEach((k,v)->System.out.println(k+":"+v));

//遍历int数组

int[] luckNums={0,8,5,6,7};

Arrays.stream(luckNums).forEach(System.out::println);

//遍历字符串数组

String[] charsArrays="a,c,d,b".split(",");

Arrays.sort(charsArrays);

Arrays.asList(charsArrays).stream().forEach(a->System.out.println(a));

//flatmap的用法

}

/**

* 给用户名重设值

*/

private void resetUserName(){

List userInfoList= Arrays.asList(new Java8Test.UserInfo("tieyi"),new Java8Test.UserInfo("bingyingao"));

userInfoList.forEach(u->u.setName(u.getName()+"suFix"));

userInfoList.forEach(a->System.out.println(a.getName()));

}

/**

* 累加用户年龄

*/

private void sumUserAge(){

List userInfoList= Arrays.asList(new Java8Test.UserInfo("tieyi",30),new Java8Test.UserInfo("bingyingao",31));

Integer sumAge= userInfoList.stream().map(a->a.getAge()).reduce((a,b)->a=a+b).get();

System.out.println(sumAge);

}

/**

* 最佳统计方法

*/

private void intSummaryStatistics(){

List userInfoList= Arrays.asList(new Java8Test.UserInfo("tieyi",30),new Java8Test.UserInfo("bingyingao",31));

IntSummaryStatistics intSummaryStatistics= userInfoList.stream().mapToInt(a->a.getAge()).summaryStatistics();

System.out.println(intSummaryStatistics.getAverage());

System.out.println(intSummaryStatistics.getCount());

System.out.println(intSummaryStatistics.getMax());

System.out.println(intSummaryStatistics.getMin());

System.out.println(intSummaryStatistics.getSum());

}

/**

* 根据用户年龄由低到高排序

*/

private void sortAgeAsc(){

List userInfoList= Arrays.asList(new Java8Test.UserInfo("tieyi",30),new Java8Test.UserInfo("bingyingao",31),new Java8Test.UserInfo("abing",29));

//由低到高正序

userInfoList.sort(Comparator.comparingInt(Java8Test.UserInfo::getAge));

//由高到低正序

userInfoList.sort(Comparator.comparingInt(Java8Test.UserInfo::getAge).reversed());

userInfoList.forEach(a->System.out.println(a.getAge()));

}

public class UserInfo{

String name ="";

int age;

UserInfo(String name ){

this.name=name;

}

UserInfo(int age){

this.age=age;

}

UserInfo(String name,int age){

this.name=name;

this.age=age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值