当前位置: 首页 > news >正文

学Java第四十二天--------Arrays工具类和Lambda表达式

一、Arrays工具类

前四个会有返回值,不会改变原数组,后面三个是操作,会改变数组。

1、tostring(arr)

2、binarySearch(arr,e)

3、copyof(arr,个数)

4、fill(arr,new e)

5、sort()只有一个参数,默认升序

6、sort()有两个参数的,能确定排序规则的

原理解释:



如何查看一个方法的参数是什么类型的?-------两个参数都填充,对 sort 进行 CTRL+B查看源码,发现sort的第二个参数是接口类型:::

写第二个参数的时候,直接写new compare,下拉框会直接显示,选中就可以了

代码:

package com.Arraysutils;import java.util.Arrays;
import java.util.Comparator;public class sort_test {public static void main(String[] args) {Integer[]arr={1,8,7,2,54,96,20};Arrays.sort(arr, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1-o2;//正序    o2-o1是降序}});System.out.println(Arrays.toString(arr));}
}
package com.Arraysutils;import java.awt.print.Printable;
import java.util.Arrays;
import java.util.Comparator;public class sort_test {public static void main(String[] args) {Integer[]arr={1,8,7,2,54,96,20};Arrays.sort(arr, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1-o2;//正序    o2-o1是降序}});System.out.println(Arrays.toString(arr));System.out.println("----------------------");System.out.println(Arrays.toString(arr));System.out.println(Arrays.binarySearch(arr,3));System.out.println(Arrays.toString(Arrays.copyOf(arr,5)));Arrays.fill(arr,200);System.out.println(Arrays.toString(arr));}
}

二、Lambda表达式

例子:

Lambda表达式是函数式思想的体现:

Lambda的固定格式:

用法:

代码:

原本的匿名内部类:

package com;public class Lambda_test {public static void main(String[] args) {method(new Swim() {@Overridepublic void swimming() {System.out.println("我在游泳");}});}public static void method(Swim s){s.swimming();}public interface Swim{public abstract void swimming();}
}

用Lambda表达式简化后:

package com;public class Lambda_test {public static void main(String[] args) {method(()-> {System.out.println("我在游泳");});}public static void method(Swim s){s.swimming();}@FunctionalInterfacepublic interface Swim{public abstract void swimming();}
}

1)必须得是匿名内部类,

2)而且得是实现接口的,不能是继承类的,

3)实现的接口里面只能有一个函数。如何判断?在接口上面放@FunctionalInterface,不报错,就可以变成Lambda表达式。

总结:

还可以更加省略:

代码:

package com.sort;import java.util.Arrays;
import java.util.Comparator;public class Lambda_test2 {public static void main(String[] args) {Integer []arr={4,5,8,3,2,7,1};Arrays.sort(arr, ( o1,  o2)->o1-o2);System.out.println(Arrays.toString(arr));}
}

小练习:

代码:

package com.Lambda;import java.util.Arrays;
import java.util.Comparator;public class Lambda_test3 {public static void main(String[] args) {String []arr={"aaa","a","aa","aaaa"};Arrays.sort(arr, (o1, o2)->o1.length()-o2.length());System.out.println(Arrays.toString(arr));}
}

http://www.dtcms.com/a/577193.html

相关文章:

  • PDF-XChange Editor丨加拿大PDF编辑转换工具
  • 家里的飞牛NAS连接的明明是千兆宽带,异地访问时网速都不对?
  • Eclipse 查找
  • 网站推广计划建设手机网站包括哪些费用
  • 想要导航网站推广怎么做南山区
  • macOS 系统下 Chrome 浏览器安装 HTTPS 证书完整指南
  • HTTP 401 状态码详解:未授权的含义与解决办法
  • Java之lambda表达式
  • JavaSe—Stream流☆
  • 如何用ae做模板下载网站wordpress搭建知识库
  • 网站开发需求清单南昌seo搜索排名
  • N32H高性能32位MCU在具身机器人上的应用
  • 网站广告收费标准电子工程网络通信的专业课
  • 实时将大模型的解决方案转换为随机应变的机器人指令
  • 在 Vue 3 + Vite 项目中使用 Less 实现自适应布局:VW 和 VH 的应用
  • codeforces1914 C~F
  • 海外住宅ip怎么区分干净程度以及怎么选择海外住宅ip
  • 酒店团购的网站建设承德网媒
  • 在网站中动态效果怎么做网站的备案要求
  • 昭和仙君(五十八)标签票据模板服务器端技术——东方仙盟筑基期
  • Dart语言空安全概念与原理详解
  • MongoDB 查询分析
  • 如何在OnePlus手机上删除短信
  • MQTT的QoS2中四次握手与TCP的三次握手、四次挥手的异同
  • 10个css更新
  • Git 实现github仓库管理-删除指定目录下的所有文件并保留目录结构
  • INT305 Machine Learning 机器学习 Pt.6 卷积神经网络(Convolutional Neural Network)
  • 方案分享:一款基于低功耗单片机的腰腹甩脂机方案
  • 鸿蒙开发TypeScript第三课:数组
  • React 15