package com.abing;
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<String> names= Arrays.asList("bingyingao","tieyi");
//遍历集合得到一个新的集合
List<String> 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<List<String>,Set<String>> listToMap= list->list.stream().collect(Collectors.toSet());
Set<String> 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<String,String> classUnit=new HashMap<String,String>(){{
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的用法
// java8遍历map
map.forEach((key, val) -> System.out.println(key + "-->" + val));
}
/**
* 给用户名重设值
*/
private void resetUserName(){
List<Java8Test.UserInfo> 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<Java8Test.UserInfo> 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<Java8Test.UserInfo> 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<Java8Test.UserInfo> 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()));
}
#list转为map
private void list2Map(){
Map<Long,TppItem> tppItemMap=items.stream().collect(Collectors.toMap(TppItem::getItemId,v->v,(k1,k2)->k1));
}
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;
}
}
}
分享到:
相关推荐
该笔记主要记录了学习Java8新增特性的全部信息,包含概念讲解及代码示例,主要针对Lambda表达式、函数式接口、方法引用及构造器引用、Stream API、Optional类几个模块深入浅出的介绍了各个模块的使用。希望对大家的...
但是我们实际开发中真正用到的新特性并不多,大多数人也仅仅用用lambda,而对于其他的特性,比如:多重注解、Date API、函数式接口等等并没有使用起来,本资源包含作者的学习java8新特性的笔记,笔记中有讲解和代码...
Java 8是Java语言发展的一个重要里程碑,引入了许多创新性的特性和改进,...黑马程序员的Java8新特性详解笔记和源码提供了深入学习这些概念的资源,结合实际的代码示例,将有助于你更好地理解和掌握Java 8的核心特性。
5. Java 8新特性:18Java8新特性.md中会涵盖Lambda表达式、函数式接口、Stream API、日期和时间API等Java 8的重要更新,这些新特性极大地简化了代码,增强了Java的表达力。 6. 反射与动态代理:17反射与动态代理.md...
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。
本学习笔记旨在深入解析JDK 8的关键特性,帮助初学者快速掌握这一版本的核心知识。 1. **lambda表达式**:JDK 8引入了lambda表达式,简化了函数式编程。它允许将匿名函数作为方法参数,或者用作方法返回值。Lambda...
12. **Java 8及更高版本的新特性**:涵盖Lambda表达式、函数式编程、Stream API、日期时间API等Java新特性,这些都是现代Java开发不可或缺的部分。 通过学习这份Markdown版的Java学习笔记,不仅可以掌握Java编程的...
《Java JDK 8学习笔记》是由林信良教授在2015年3月出版的一本详尽解析Java SE 8新特性的书籍,由清华大学出版社发行。这本书共计643页,内容完整且清晰,包含目录和书签,便于读者高效地查阅和学习。 在Java JDK 8...
Java JDK 7是Java开发工具包的一个重要版本,它的全称是Java Development Kit,是用于构建和运行Java应用程序的关键组件。...通过这份PDF学习笔记,读者将能深入理解JDK 7的新特性,并能将其应用到实际项目中。
"Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...
总之,这份"Java入门学习笔记"是一个全面的Java学习资源,覆盖了从基础知识到高级特性的广泛内容,对于想要踏入Java编程世界的新手来说,是一份不可多得的参考资料。通过阅读并实践这些笔记,初学者不仅可以掌握Java...
JAVA 程序设计学习笔记 JAVA 程序设计学习笔记是一个详细的学习笔记,涵盖了 JAVA 程序设计的基本概念、语言特征、类库、环境设置、安装等方面的知识点。 1. JAVA 程序设计的基本概念 JAVA 程序设计是一种基于...
本知识点的标题为“Java学习笔记(必看经典)”,意味着所整理的内容是针对Java初学者的一系列核心概念和原理的总结。 首先,面向对象编程是Java语言的核心,它与传统的面向过程编程有显著的不同。面向对象编程强调的...
《JAVA学习笔记》是林信良先生的一部深入浅出的Java编程教程,旨在帮助初学者和有一定经验的开发者巩固和提升Java编程技能。这本书涵盖了Java语言的基础到高级概念,是一份宝贵的自学资料。 首先,从基础部分开始,...
8.JVM让Java可以跨平台,不同的系统平台有不同的JVM,它们都认识.class文件。Java编译语言将Java代码编译成.class文件(只有一种形式),而C/C++语言将代码编译成01码,不同的操作系统的01码指令不同,这造成了不能跨...
【Java基础】 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年发布。Java以其“一次编写,到处运行”的特性...通过深入学习和实践,你可以不断提升自己的Java编程能力。
同时,对于现代化的开发,笔记也可能包含关于Java 8及以上版本的新特性,如Lambda表达式、Stream API和日期时间API等。 最后,笔记可能还包括一些实践项目或案例分析,帮助读者将所学知识应用到实际场景中,增强...
### Java学习笔记及心得知识点详细解析 #### 标题:Java学习笔记及心得 #### 描述:Core Java 学习笔记及心得 pdf格式可打开。涵盖了java的基础入门知识,非常适合自学的及想深入学习理解的同学。 #### 标签:...
Java JDK 6学习笔记是为Java初学者量身定制的一份宝贵资料,它涵盖了Java编程的基础概念、语法以及核心特性。这份PPT简体版旨在帮助读者快速掌握Java开发的基本技能,逐步成为一名合格的Java程序员。 Java JDK...