[Java][方法引用]字符大小写转换/数组创建->基于类名引用和数组构造方法
2023-12-17 14:56:42
类名引用成员方法 String::substring 再次复习一下方法引用的规则: 1.需要有函数式接口 2.被引用的方法必须存在 3.被引用方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致 返回值保持一致 被引用方法的功能需要满足当前的需求引用数组的构造方法: 格式 数据类型[]::new 例子:int[]::new
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.function.Function;
import java.util.function.IntFunction;
public class Main{
public static void main(String[] args){
/*
类名引用成员方法
String::substring
再次复习一下方法引用的规则:
1.需要有函数式接口
2.被引用的方法必须存在
3.被引用方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致 返回值保持一致
4.被引用方法的功能需要满足当前的需求
*/
//创建集合对象
ArrayList<String> list = new ArrayList<>();
//添加数据
Collections.addAll(list,"aaa","bbb","ccc","ddd");
//变成大写后再进行输出 String->String
list.stream().map(new Function<String, String>() {
@Override
public String apply(String s){
return s.toUpperCase();
}
}).forEach(s->System.out.println(s));
//变成方法引用
list.stream().map(String::toUpperCase).forEach(s->System.out.println(s));
//这里就是在Map中 我们在String类中引用了toUpperCase的值
/*
引用数组的构造方法:
格式 数据类型[]::new
例子:int[]::new
*/
ArrayList<Integer> l = new ArrayList<>();
Collections.addAll(l,1,2,3,4,5,6,7,8,9,10);
Integer[] arr = l.stream().toArray(new IntFunction<Integer[]>() {
@Override
public Integer[] apply(int value) {
return new Integer[value];
}
});
for(Integer i:arr){
System.out.println(i);
}
//这样想太复杂了
Integer[] arr2 =l.stream().toArray(Integer[]::new);
for (Integer i:arr2){
System.out.println(i);
}
}
}
文章来源:https://blog.csdn.net/qq_37511412/article/details/135044275
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!