Java学习笔记14
1.Arrays类
Arrays类包含用于操作数组的各种方法(如排序和搜索)。该类没有构造函数,直接使用类名.方法名()的方法调用需要的方法。
常用方法
| 方法 | 作用 |
|---|---|
| public static String toString(数组) | 把数组拼接成一个字符串 |
| public static int binarySearch(数组, 查找的元素) | 二分查找法查找元素 |
| public static int[] copyOf(原数组, 新数组长度) | 拷贝数组 |
| public static int[] copyOfRange(原数组, 起始索引, 结束索引) | 拷贝数组(指定范围,包头不包尾) |
| public static void fill(数组, 元素) | 用指定元素填充数组 |
| public static void sort(数组) | 按照默认方式(升序)进行数组排序 |
| public static void sort(数组, 排序规则) | 按照指定的规则排序 |
sort方法示例
/*
* public static void sort(数组, 排序规则)
* 该方法只能给引用数据类型的数组排序
* 底层:利用二分查找+插入排序进行排序
* */
Integer[] arr = {2, 3, 1, 5, 6, 7, 8, 4, 9};
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2; // o1 - o2为升序,o2 - o1为降序
}
});
System.out.println(Arrays.toString(arr));
2.Lambda表达式
2.1 函数式编程
函数式编程(Functional Programing)是一种思想特点。
对比:
- 面向对象编程:先找对象,让对象做事情,强调谁去做。
- 函数式编程:忽略面向对象的复杂语法,强调做什么,而不是谁去做。
2.2 Lambda表达式
Lambda表达式是JDK8新增的一种语法形式。用于简化匿名内部类的写法。
示例:
// 原句:
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
// Lambda表达式简化后:
Arrays.sort(arr, (Integer o1, Integer o2) -> {
return o1 - o2;
}
);
注意:
Lambda表达式只能简化函数式接口的匿名内部类的写法。
函数式接口:有且仅有一个抽象方法的接口,可在接口上方加
@FunctionalInterface注解验证。
2.3 Lambda表达式的省略写法
省略核心:可推导,可省略。
省略规则:
- 参数类型可以省略不写。
- 如果只有一个参数,参数类型可以省略,同时小括号括号也可以省略。
- 如果方法体只有一行,大括号、return、分号可以省略(同时省略)。
示例1:
// 原句:
Arrays.sort(arr, (Integer o1, Integer o2) -> {
return o1 - o2;
}
);
// 省略写法:
Arrays.sort(arr, (o1, o2) -> o1 - o2);
示例2:
// 原句:
fun((Integer i) -> {
System.out.println(1);
}
);
// 省略写法:
fun(i -> System.out.println(1));
Java学习笔记14的更多相关文章
- Java 学习笔记(14)—— 文件操作
java文件操作主要封装在Java.io.File中,而文件读写一般采用的是流的方式,Java流封装在 java.io 包中.Java中流可以理解为一个有序的字符序列,从一端导向到另一端.建立了一个流 ...
- Java学习笔记14(面向对象七:final、static)
final:意为最终,不可变,是一个修饰词 有时候一个类地功能被开发好了,不想让子类重写,修改,这里就会用到final关键字 final修饰类: 不可以被继承,但是可以继承其他类 示例: public ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 20145330第八周《Java学习笔记》
20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...
- 20145330第七周《Java学习笔记》
20145330第七周<Java学习笔记> 第十三章 时间与日期 认识时间与日期 时间的度量 GMT(格林威治标准时间):现在不是标准时间 世界时(UT):1972年UTC出来之前,UT等 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- golang学习笔记14 golang substring 截取字符串
golang学习笔记14 golang substring 截取字符串golang 没有java那样的substring函数,但支持直接根据 index 截取字符串mystr := "hel ...
- java学习笔记11--集合总结
java学习笔记系列: java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Ob ...
- java学习笔记8--接口总结
接着前面的学习: java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3- ...
- 20145316许心远《Java学习笔记》第三周总结
20145316许心远<Java程序设计>第3周学习总结 教材学习内容总结 一.定义类: 类定义时使用class关键字 如果要将x绑定到新建的对象上,可以使用"="制定 ...
随机推荐
- Vue二级联动上传图片
二级联动的后台和之前一样都需要一个字典字段查询来实现二级联动 但是由于VUE语法和AJAX的不同在前台绑定的时候也有所不同 2.1 首先下拉框的写法就有了本质的改变通过v-model="&q ...
- 如何让charles无论怎么请求都返回一个结果
1. map Local 将匹配的url映射到本地文件.这个需要首先将url右键,save Response,将原有报文保存到本地,然后映射到该文件,修改该文件即可,直接自己写费事2. ...
- Think Python 学习笔记
#!/usr/bin/env python# coding: utf-8# # Think Python 学习笔记# 1.关于异或计算符# In[2]:6^2# 2.关于函数# 注意:变量名称不能用数 ...
- 6-SSRF漏洞
1.SSRF漏洞介绍 SSRF是一种由攻击者构造请求,由服务端发起请求的安全漏洞.一般情况下,ssrf攻击的目标是外网无法访问的内部系统. 2.SSRF原理 Ssrf的形成大多是由于服务端提供了从其他 ...
- Field userService in com.lin.hms.controller.LogController required a bean of type 'org.lin.hms.service.UserService' that could not be found.
需要一个bean但找不到 解决 我们在controller使用的service没有注入spring容器,那么我们可以在启动类上,加上包扫描注解,让这个bean所在的包能扫描到: @ComponentS ...
- dotNetCore创建Windows服务程序并安装服务
一.创建控制台程序 二.在项目中添加新建项,选择Windows服务类型. 此时会出现一个错误提示,这是因为尚未添加windows服务控制引用造成的. 三.添加Nuget包,System.Service ...
- 【MSSQL】数据类型的转换
类型转换 https://learn.microsoft.com/zh-cn/sql/t-sql/data-types/data-type-conversion-database-engine?vie ...
- mybaits-plus 部分注解说明
参考: https://blog.csdn.net/qq_45684867/article/details/123951309
- Drf_序列化and反序列化基础
序列化类 from rest_framework import serializers class BookSerializer(serializers.Serializer): # 要序列化的字段 ...
- [转]C++回调函数
回调函数 回调函数是一个时时听到的概念,比如在windows API编程时遇到的WinProc函数,就是我们编写而由操作系统调用的函数.现在,我们需要慢慢又详细的记录一下这个问题. 库与使用者的问题 ...