这里写目录标题
一、Java 8特性汇总
Java8是目前较为常用的版本,有很多功能介绍,总的概述如下
二、lambda表达式
Lambda表达式相当于函数式接口实现的实例。
语法格式:
(parameters) -> expression 或 (parameters) ->{
statements; }
* 用逗号分隔的参数列表
* -> 符号
* 和 语句块 组成
使用说明:
() -> 代表了 lambda的一个表达式;
单行代码且有参数的情况下可以不写 ()【如 s->System.out.println(s)】;
(T t)中的参数类型可写可不写;
单行代码无需写return (无论函数式接口有没有返回值),花括号;
多行代码必须写花括号,有返回值的一定要写返回值;
2.1、集合(list/set/Arrays)常见使用
list的按照条件删除、替换、排序、遍历
List<String> list = new ArrayList<>();
list.add("ew");
list.add("dwxs");
list.add("ffer");
Collections.sort(list); //默认升序【一般的使用方法】
//【普通方法降序】
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);//降序
}
});
Collections.sort(list,(o1,o2) -> o2.compareTo(o1)); //降序
//【普通方法删除】
Iterator<String> iter1 = list.iterator();
while(iter1.hasNext()){
String tem = iter1.next();
if("ew"== tem) iter1.remove();
}
list.removeIf(e -> e.equals("ew")); //删除
list.replaceAll(e -> e.concat("!!")); //批量拼接替换
list.sort( (o1,o2) -> o2.compareTo(o1)); //排序
list.forEach(e -> System.out.println(e)); //遍历
List<String> list3 = new ArrayList<>();
Collections.addAll(list3,"33","44334","11");
// list3.parallelStream().filter(e -> e.length() > 2); //这只是过滤条件,并不能直接得到需要的数据
list3.parallelStream().filter(e -> e.length() > 2).forEach(System.out::print); //会得到 44334
Arrays排序
String[] strArr = {
"33dw","edw2","432","dfwe"};
Arrays.sort(strArr); //默认升序
Arrays.sort(strArr,(o1,o2)-> o2.compareTo(o1)); //String[]降序
TreeSet支持 降序、遍历打印
Set<String> set = new TreeSet<String>(
(o1, o2) -> {
if(o2.compareTo(o1) > 0){
return 1;
}
return -1;
}
);
set.add("ew");
set.add("dwxs");
set.add("54dcsd");
set.add("ffer");
set.forEach(e -> System.out.println(e));
2.2、线程常见使用
创建线程
new Thread(
() -> {
for(int i=0;i<20;i++){
System.out.println(i);
}
}
).start();
2.3、Bean对象装配成集合(list)
Person p1 = new Person();
p1.setPersonID(123);
Person p2 = new Person();
p2.setPersonID(43);
Person p3 = new Person();
p3.setPersonID(567);
List<Person> personList = Stream.of(p1,p2,p3).collect(Collectors.toList());
List<Person> personList2 = Stream.of(22,33,44).map(e ->{
Person tem = new Person