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的更多相关文章

  1. Java 学习笔记(14)—— 文件操作

    java文件操作主要封装在Java.io.File中,而文件读写一般采用的是流的方式,Java流封装在 java.io 包中.Java中流可以理解为一个有序的字符序列,从一端导向到另一端.建立了一个流 ...

  2. Java学习笔记14(面向对象七:final、static)

    final:意为最终,不可变,是一个修饰词 有时候一个类地功能被开发好了,不想让子类重写,修改,这里就会用到final关键字 final修饰类: 不可以被继承,但是可以继承其他类 示例: public ...

  3. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  4. 20145330第八周《Java学习笔记》

    20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...

  5. 20145330第七周《Java学习笔记》

    20145330第七周<Java学习笔记> 第十三章 时间与日期 认识时间与日期 时间的度量 GMT(格林威治标准时间):现在不是标准时间 世界时(UT):1972年UTC出来之前,UT等 ...

  6. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  7. golang学习笔记14 golang substring 截取字符串

    golang学习笔记14 golang substring 截取字符串golang 没有java那样的substring函数,但支持直接根据 index 截取字符串mystr := "hel ...

  8. java学习笔记11--集合总结

    java学习笔记系列: java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Ob ...

  9. java学习笔记8--接口总结

    接着前面的学习: java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3- ...

  10. 20145316许心远《Java学习笔记》第三周总结

    20145316许心远<Java程序设计>第3周学习总结 教材学习内容总结 一.定义类: 类定义时使用class关键字 如果要将x绑定到新建的对象上,可以使用"="制定 ...

随机推荐

  1. php 验证身份证合法性

    function checkIdcard($num = '') { $length = strlen($num); if ($length == 15) { //如果是15位身份证 //15位身份证没 ...

  2. JMeter参数化(一)--CSV参数化

    一.CSV Data Set Config 1.添加配置元件-CSV Data Set Config 其中,分隔符不能是参数化的值中的符号,否则会被截断. 2.调用 3.循环读取文件中数据 假设数据内 ...

  3. NOIP2011普及组

    T2  统计单词数 也是一道经典题 字符串匹配 #include<iostream> #include<cstdio> #include<map> #include ...

  4. MySql 字符串时间转换

    MySql中经常遇到字符串格式时间转换成时间类型的情况: SELECT STR_TO_DATE('Jul 20 2013 7:49:14:610AM','%b %d %Y %h:%i:%s:%f%p' ...

  5. Sentinel介绍与使用

    https://blog.csdn.net/noaman_wgs/article/details/103328793

  6. 1012.Django中间件以及上下文处理器

    一.中间件 中间件的引入: Django中间件(Middleware)是一个轻量级.底层的"插入"系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出. d ...

  7. Mybatis二级缓存问题

    一.缓存介绍. Mybatis提供了缓存服务,以减缓数据库压力: Mybatis的查询缓存总共有两级,我们称之为一级缓存和二级缓存,如图:   1.一级缓存是SqlSession级别的缓存.在操作数据 ...

  8. AE|蒙版、遮罩、轨道遮罩全面解析

    相信很多初学者都有这样的困惑,搞不清蒙版和遮罩这两个概念的区别,甚至有的人认为它们就是一个东西. 这两个看似一样的概念,其实是有很大的区别的,今天主要从定义和作用方式这两个方面进行解析,相信对各位认识 ...

  9. Java基础学习——Scanner

    import java.util.Scanner; public class HelloWord{ public static void main(String[] args){ Scanner s= ...

  10. Kibana+X-pack安装使用

    安装Kibana 下载解压安装包,一定要装与ES相同的版本 下载地址: https://www.elastic.co/downloads/kibana wget https://artifacts.e ...