java8::(JDK8双冒号)具有什么功能呢?

[复制链接]
发表于 2022-8-25 07:06:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
转自:
http://www.java265.com/JavaCourse/202206/3725.html
Java 8于2015年3月19发布,是自Java 5以来最具革命性的版本
Java 8 为Java语言、编译器、类库、开发工具与JVM(Java虚拟机)带来了大量新特性
HashMap底层数据结构由链表改成了红黑树
内存模型中用元空间代替了永久带
lambda表达式等
 
下文笔者讲述JDK8中有双冒号的功能说明,如下所示
  1. jdk8中双冒号的功能:
  2.      将方法作为参数传入至stream内部
  3.          stream内部中每个元素都会放入到方法中运行
复制代码
例:未采用双冒号的写法
  1. public class TestClass {
  2.     public static void  printValur(String str){
  3.         System.out.println("print value : "+str);
  4.     }
  5.     public static void main(String[] args) {
  6.         List<String> al = Arrays.asList("a","b","c","d");
  7.         for (String a: al) {
  8.             TestClass.printValur(a);
  9.         }
  10.         al.forEach(x->{
  11.             TestClass.printValur(x);
  12.         });
  13.     }
  14. }
复制代码
采用JDK双冒号的写法
  1. public class MyTest {
  2.     public static void  printValur(String str){
  3.         System.out.println("print value : "+str);
  4.     }
  5.     public static void main(String[] args) {
  6.         List<String> al = Arrays.asList("a", "b", "c", "d");
  7.         al.forEach(TestClass::printValur);
  8.         //下面的方法和上面等价的
  9.         Consumer<String> methodParam = TestClass::printValur; //方法参数
  10.         al.forEach(x -> methodParam.accept(x));//方法执行accept
  11.     }
  12. }<br><br>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表