Arrays(操作数组工具类)、Lambda表达式

在这里插入图片描述

package exercise;import java.util.Arrays;public class ArraysDemo {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5};//将数组变成字符串System.out.println(Arrays.toString(arr));//二分查找法查找元素//细节1:1.数组必须是有序的 2.元素必须是升序的//细节2:如何要查找的元素是存在的,那么返回真实的索引值//相反,返回的是  - 插入点 - 1System.out.println(Arrays.binarySearch(arr, 3));//拷贝数组copyOfint[] newArr = Arrays.copyOf(arr, 6);System.out.println(Arrays.toString(newArr));//拷贝数组copyOfRange(指定范围)//包头不包尾,包左不包右int[] newArr2 = Arrays.copyOfRange(arr, 1, 4);System.out.println(Arrays.toString(newArr2));//填充数组fillArrays.fill(newArr2, 10);System.out.println(Arrays.toString(newArr2));//排序(底层默认快速排序),升序排序int[] arr2 = {9, 8, 7, 6, 5, 4, 3, 2, 1};Arrays.sort(arr2);System.out.println(Arrays.toString(arr2));}
}

针对于sort,如何让其降序排序

package exercise;import java.util.Arrays;
import java.util.Comparator;public class Sort {public static void main(String[] args) {//public static void sort(数组,排序规则)按照指定的规则排序//参数一:要排序的数组//参数二:排序的规则//细节://只能给引用数据类型的数组进行排序//如果数组是基本数据类型的,需要变成其对于的包装类Integer[] arr = {1, 5, 3, 9, 2};//第二个参数是一个接口,所以我们在调用方法的时候,需要传递这个接口的实现类对象,作为排序的规则。//但是这个实现类,我只要使用一次,所以就没有必要单独的去写一个类,直接采取匿名内部类的方式就可以了//简单理解://o1-o2: 升序//o2-o1: 降序Arrays.sort(arr, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1 - o2;}});System.out.println(Arrays.toString(arr));}
}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

package exercise;public class LambdaDemo {public static void main(String[] args) {method(new Swinmming() {@Overridepublic void swim() {System.out.println("重写swim方法~");}});//Lambda表达式method(() -> {System.out.println("重写swim方法~");});}public static void method(Swinmming s) {s.swim();}
}
@FunctionalInterface
interface Swinmming {public abstract void swim();
}

在这里插入图片描述


在这里插入图片描述

package exercise;import java.util.Arrays;
import java.util.Comparator;public class LambdaDemo1 {public static void main(String[] args) {//lambda的省略规则://1.参数类型可以省略不写。//2.如果只有一个爹数,参数类型可以省略,同时()也可以省略。//3.如果Lambda表达式的方法体只有一行,大括号,分号,return可以省略不写,需要同时省略。Integer[] arr = {4, 3, 2, 7, 6, 9, 1};Arrays.sort(arr, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1 - o2;}});//Lambda完整表达式Arrays.sort(arr, (Integer o1, Integer o2) -> {return o1 - o2;});//Lambda简写表达式Arrays.sort(arr, (o1, o2) -> o1 - o2);System.out.println(Arrays.toString(arr));}
}

在这里插入图片描述

package exercise;import java.util.Arrays;
import java.util.Comparator;public class Demo1 {public static void main(String[] args) {String[] arr = {"yang", "ze", "chao1", "sunshine", "lulushui2"};Arrays.sort(arr, (o1, o2) -> o1.length() - o2.length());System.out.println(Arrays.toString(arr));}
}

在这里插入图片描述
GF类:

在这里插入图片描述

package exercise;import java.util.Arrays;
import java.util.Comparator;public class GfTest {public static void main(String[] args) {GirlFriend gf1 = new GirlFriend("sunshine", 18, 172);GirlFriend gf2 = new GirlFriend("lulushui", 19, 171);GirlFriend gf3 = new GirlFriend("jiuselu", 19, 171);GirlFriend[] arr = {gf1, gf2, gf3};//精简版Lambda表达式Arrays.sort(arr, (o1,o2)-> {if (o1.getAge() != o2.getAge()) {return o1.getAge() - o2.getAge();} else if (o1.getHeight() != o2.getHeight()) {return o1.getHeight() - o2.getHeight();}return o1.getName().compareTo(o2.getName());});System.out.println(Arrays.toString(arr));}
}

在这里插入图片描述

package exercise;public class Demo2 {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 12; i++) {sum += recursion(i);}System.out.println(sum);}private static int recursion(int n) {if (n == 1 || n == 2) {return 1;}return recursion(n - 1) + recursion(n - 2);}
}

在这里插入图片描述
解析:
在这里插入图片描述

package exercise;public class Demo3 {public static void main(String[] args) {int number = 1;System.out.println(recursion(number));}private static int recursion(int day) {if (day <= 0 || day >= 11) {return -1;}if (day == 10) {return 1;}return (recursion(day + 1) + 1) * 2;}
}

在这里插入图片描述
解析:类似于斐波那契数列,20个台阶爬法=19个台阶爬法+18个台阶爬法。

package exercise;public class Demo4 {public static void main(String[] args) {System.out.println(getCount(20));}private static int getCount(int n) {if (n == 1) {return 1;}if (n == 2) {return 2;}return getCount(n - 1) + getCount(n - 2);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/20353.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCASCADE入门(2)——openCasCade7.6.0版本的exe方式安装,vs2017环境配置,编译和使用draw

3rd party Components | Open CASCADE Technology 目录 引出安装好vs2017和occt7.6设置环境变量 启动occt和编译关于custom.bat批处理文件双击运行 打开draw使用方式一&#xff1a;双击draw.bat批处理vs设置启动项 总结其他自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进…

路由器设置——隐藏SSID(隐藏WiFi名称)

参考来源&#xff1a; https://www.192ly.com/qiu-zhu/33315.htmlhttps://www.yunqishi.net/video/109743.html 一、什么是SSID? SSID是Service Set ldentifier的缩写&#xff0c;意思是服务集标识&#xff0c;简单来说SSID就是wifi的名字。 二、怎么隐藏SSID 将 开启SSI…

为什么要学习数据结构和算法

前言 控制专业转码学习记录&#xff0c;本科没学过这门课&#xff0c;但是要从事软件行业通过相关面试笔试基础还是要打牢固的&#xff0c;所以通过写博客记录一下。 必要性 1.越是厉害的公司&#xff0c;越是注重考察数据结构与算法这类基础知识 2.作为业务开发&#xff0c…

MMPose-RTMO推理详解及部署实现(上)

目录 前言1. 概述1.1 MMPopse1.2 MMDeploy1.3 RTMO 2. 环境配置3. Demo测试4. ONNX导出初探5. ONNX导出代码浅析6. 剔除NMS7. 输出合并8. LayerNormalization算子导出9. 动态batch的实现10. 导出修改总结11. 拓展-MMPose中导出ONNX结语下载链接参考 前言 最近在 MMPose 上看到了…

【NOIP2018普及组复赛】题2:龙虎斗

题2&#xff1a;龙虎斗 【题目描述】 轩轩和凯凯正在玩一款叫《龙虎斗》的游戏&#xff0c;游戏的棋盘是一条线段&#xff0c;线段上有 n n n 个兵营&#xff08;自左至右编号 1 ∼ n 1∼n 1∼n&#xff09;&#xff0c;相邻编号的兵营之间相隔 1 1 1 厘米&#xff0c;即棋…

【Python从入门到进阶】56、Mysql防止SQL注入及ORM库简化操作

接上篇《55、使用Python轻松操作Mysql数据库》 上一篇我们讲解了Mysql的基本链接和增删改查&#xff0c;本篇我们来介绍链接Mysql时参数化查询与防止SQL注入以及使用ORM&#xff08;对象关系映射&#xff09;库简化操作的内容。 一、参数化查询与防止SQL注入 在数据库操作中&…

雄鹰只属于天空

雄鹰只属于天空 成大事者&#xff0c;必有人生至暗时刻之经历&#xff0c;高处坠落折戟沉沙&#xff0c;在孤立无援时&#xff0c;世态炎凉人情冷落&#xff0c;饱经苦楚滋味&#xff0c;所有的热情关系一夜冰封&#xff0c;冷嘲热讽袖手旁观&#xff0c;落井下石四面楚歌&…

互联网简史-分久必合,合久必分

六一儿童节&#xff0c;给孩子们讲讲互联网的历史。 任何当代技术都是古老技术的重组&#xff0c;这是真的。我从电话网络开始&#xff0c;两幅图完事。电波可以承载语音作为最开始&#xff0c;后面的事自然而然&#xff1a; 说实话&#xff0c;网络这种事&#xff0c;它的 …

FPGA中的乒乓操作

为什么不直接选用一个缓存更大的FIFO而选用乒乓操作为什么乒乓操作可以实现低速处理高速数据乒乓操作适用哪些场景 一、乒乓操作结构 首先先介绍一下乒乓操作的原理&#xff0c;其结构如下&#xff1a; 输入选择单元负责将数据送到数据缓冲模块&#xff0c;然后输出选择单元负…

面试题vue+uniapp(个人理解-面试口头答述)未编辑完整....

1.vue2和vue3的区别&#xff08;vue3与vue2的区别&#xff08;你不知道细节全在这&#xff09;_vue2和vue3区别-CSDN博客&#xff09;参考 Vue3 在组合式&#xff08;Composition &#xff09;API&#xff0c;中使用生命周期钩子时需要先引入&#xff0c;而 Vue2 在选项API&am…

使用迭代最近点 (ICP) 算法在 Open3D 中对齐点云

一、Open3D 简介及其功能 Open3D 是一个现代库&#xff0c;它提供了用于处理 3D 数据的各种工具。在其功能中&#xff0c;它提供了高效的数据结构和算法来处理点云、网格等&#xff0c;使其成为在计算机视觉、机器人和图形领域工作的研究人员和从业人员的不错选择。Open3D 的特…

2024 年最新安装MAC-vue教学包括常见错误

花了一上午时间终于将 vue 的工程文件安装好了&#xff0c;本教材是傻瓜式操作&#xff0c;按着教程一步一步操作最后就可以看到页面了。 安装Node 1.在线地址&#xff1a; https://nodejs.org/en 2、点击 Download Node.js下载即可&#xff0c;下载完成后&#xff0c;傻瓜式的…

primeflex Display盒模型显示相关样式实战案例

01 Display盒子模式相关样式 基础样式 ClassPropertieshiddendisplay: none;blockdisplay: block;inlinedisplay: inline;inline-blockdisplay: inline-block;flexdisplay: flex;inline-flexdisplay: inline-flex; 样式说明&#xff1a; hidden&#xff1a;隐藏&#xff0c…

c# 学习教程

打印语句 折叠代码 变量 整形 浮点型 特殊类型

林业调查具体是做些什么?

林业调查是对森林资源进行系统的信息收集和处理的过程。 林业调查涵盖了对林木、林地以及林区内生长的动植物及其环境条件的全面评估&#xff0c;旨在及时掌握森林资源的数量、质量和生长消亡的动态规律。这种调查不仅关注森林本身&#xff0c;还包括与之相关的自然环境和经济…

企业级win10电脑下同时存在Python3.11.7Python3.6.6,其中Python3.6.6是后装的【过程与踩坑复盘】

背景&#xff1a; 需要迁移原始服务器的上的Python3.6.6Flask项目到一个新服务器上&#xff0c; 新服务器上本身存在一个Python3.11.7, 所以这涉及到了一个电脑需要装多个Python版本的问题 过程&#xff1a; 1-确定新电脑版本【比如是32还是64位】 前面开发人员存留了两个…

算法练习第26天|46.全排列、47全排列II

46.全排列 46. 全排列 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/permutations/description/ 题目描述&#xff1a; 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a;…

STM32 | 超声波实战

​01、上节回顾 STM32 | HC-SR04 超声波测距模块 | DHT11数字温湿度传感器(第七天)STM32 | 数字温湿度传感器DHT11STM32 | HC-SR04 超声波测距模块STM32 | DHT11数字温湿度传感器实战02、超声波图示 03、超声波头文件 #ifndef __SR04_H#define __SR04_H​#include "stm…

在鸿蒙中身份校验的手势密码的实现

在harmony中它提供了默认的组件PatternLock()&#xff1b; 这个就能直接显示九宫格密码验证 并且他有两个主要的回调事件 .onDotConnect密码输入选中宫格圆点时触发该回调 .onPatternComplete&#xff1a;密码输入结束时触发该回调 //如代码实现 PatternLock().sideLength(32…

OceanBase 内存研究(OceanBase 3.2.4.5)

内存结构 从官网的结构图可以看出&#xff0c;一台observer可使用的总内存(memory_limit)包括 系统内存(system_memory) 和 租户内存(sys租户与普通租户) 系统内存 系统内存system_memory 属于 observer 的内部内存&#xff0c;允许其它租户共享使用该内存资源 (root10.0.0.…