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

Arrays类

Arrays类位于 java.util 包中,主要包含了操作数组的各种方法。
    int[] arr = new int[5];//新建一个大小为5的数组Arrays.fill(arr,4);//给所有值赋值4String str = Arrays.toString(arr); // Arrays类的toString()方法能将数组中的内容全部打印出来System.out.print(str);//输出:[4, 4, 4, 4, 4]
	int[] arr = new int[5];//新建一个大小为5的数组Arrays.fill(arr, 2,4,6);//给第2位(0开始)到第4位(不包括)赋值6String str = Arrays.toString(arr); // Arrays类的toString()方法能将数组中的内容全部打印出来System.out.print(str);//输出:[0, 0, 6, 6, 0]
Arrays.equals(); //比较数组元素是否相等
	int[] arr1 = {1,2,3};int[] arr2 = {1,2,3};System.out.println(Arrays.equals(arr1,arr2));//输出:true//如果是arr1.equals(arr2),则返回false,因为equals比较的是两个对象的地址,不是里面的数,而Arrays.equals重写了equals,所以,这里能比较元素是否相等。
Arrays.copeOf() 和Arrays.copeOfRange(); //截取数组
	int[] arr = {10,20,30,40,50};int[] arr1 = Arrays.copyOf(arr, 3);String str = Arrays.toString(arr1); // Arrays类的toString()方法能将数组中的内容全部打印出来System.out.print(str);//输出:[10, 20, 30] (截取arr数组的3个元素赋值给新数组arr1)
	int []arr = {10,20,30,40,50};int []arr1 = Arrays.copyOfRange(arr,1,3);String str = Arrays.toString(arr1); // Arrays类的toString()方法能将数组中的内容全部打印出来System.out.print(str);//输出:[20, 30] (从第1位(0开始)截取到第3位(不包括))
Arrays.binarySearch (arr, 元素)方法

对有序数组,通过二分法,搜索有没有某个元素。(无序数组不能使用)

上面有一个拘束,就是排列顺序只能是从小到大,如果我们要从大到小,就要使用这种方式

使用比较器(comparator)作为sort的参数(用于单个类型的排序)
package test;import java.util.Arrays;
import java.util.Comparator;public class Main {public static void main(String[] args) {//注意,要想改变默认的排列顺序,不能使用基本类型(int,double, char)//而要使用它们对应的类Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};//定义一个自定义类MyComparator的对象Comparator cmp = new MyComparator();Arrays.sort(a, cmp);for(int i = 0; i < a.length; i ++) {// int b =Integer.intValue();会自动拆箱System.out.print(a[i] + " ");}}
}
//Comparator是一个接口,所以这里我们自己定义的类MyComparator要implents该接口
//而不是extends Comparator
class MyComparator implements Comparator<Integer>{@Overridepublic int compare(Integer o1, Integer o2) {//如果n1小于n2,我们就返回正值,如果n1大于n2我们就返回负值,//这样颠倒一下,就可以实现反向排序了if(o1 < o2) { return 1;}else if(o1 > o2) {return -1;}else {return 0;}}}
主要:如果是要实现对象的排序,则需要用到实现Comparable接口(用于类之间的排序)。

假设有Employee类,有name和salary字段,

需要实现Comparable接口:

public int compareTo(Object otherObject)
{Employee other = (Employee) otherObject;return Double.compare(salary, other.salary);
}
import java.util.Arrays;
public class Test {public static void main(String[] args) {Employee[] staff = new Employee[5];staff[0] = new Employee("Harry Hacker", 35000);staff[1] = new Employee("Carl Cracker", 75000);staff[2] = new Employee("Tony Tester", 38000);staff[3] = new Employee("Tony Bool", 48000);staff[4] = new Employee("June Bo", 48001);Arrays.sort(staff);// print out information about all Employee objectsfor (Employee e : staff) {System.out.println("name=" + e.getName() + " , salary=" + e.getSalary());}}
}

name=Harry Hacker , salary=35000.0
name=Tony Tester , salary=38000.0
name=Tony Bool , salary=48000.0
name=June Bo , salary=48001.0
name=Carl Cracker , salary=75000.0
 

相关文章:

Arrays类

Arrays类位于 java.util 包中&#xff0c;主要包含了操作数组的各种方法。 int[] arr new int[5];//新建一个大小为5的数组Arrays.fill(arr,4);//给所有值赋值4String str Arrays.toString(arr); // Arrays类的toString()方法能将数组中的内容全部打印出来System.out.print(s…...

lua ipairs pairs

这两个函数都是用来遍历表格数组的&#xff0c;性能几乎没有区别&#xff0c;其他区别如下&#xff1a; iparis只会遍历数字索引&#xff0c;并在遇到第一个非数字索引时终止 paris则会遍历所有 local t {22,33,44,name沧浪水,urlwww.freecls.com,55,66}t[10] 100 for k,v…...

swift3.0 废弃 swift 4.0 以后字符串截取

截取前 n 个字符&#xff1a; let str "Hello, Swift!" let prefix str.prefix(5) print(prefix) // "Hello" 截取后 n 个字符&#xff1a; let str "Hello, Swift!" let suffix str.suffix(6) print(suffix) // "Swift!" 截取指…...

休息是不可能休息的

654.最大二叉树 分析&#xff1a;相比较遍历顺序构建二叉树&#xff0c;这个相对简单。 思路&#xff1a;每次找到数组最大值&#xff0c;然后分割数组 class Solution { public:TreeNode*judge(vector<int>&nums){if(nums.size()0) return nullptr;int maxNum0,in…...

Java面向对象(内部类)(枚举)(泛型)

内部类 内部类是五大成员之一&#xff08;成员变量、方法、构造方法、代码块、内部类&#xff09;&#xff1b; 一个类定义在另一个类的内部&#xff0c;就叫做内部类&#xff1b; 当一个类的内部&#xff0c;包含一个完整的事物&#xff0c;且这个事务不必单独设计&#xf…...

macOS - 安装 GNU make、cmake

文章目录 关于 cmake使用 brew 安装 关于 GNU make方式一&#xff1a;brew方式二&#xff1a;下载源码 关于 cmake 官网&#xff1a;https://cmake.org/ 使用 brew 安装 brew 安装 cmake: https://formulae.brew.sh/formula/cmake安装使用 brew : https://blog.csdn.net/lovec…...

vue中style scoped属性的作用

一、为什么要给style 节点加 scoped 属性&#xff08;vue&#xff09; 1、作用&#xff1a;当style标签里面有scoped属性时&#xff0c;它的css只作用于当前组建的元素。在单页面项目中可以使组件之间互不污染&#xff0c;实现模块化&#xff08;实现组件的私有化&#xff0c;不…...

【ARM 嵌入式 编译系列 10.2 -- 符号表与可执行程序分离详细讲解】

文章目录 符号表与可执行程序分离方法一 使用eu-strip方法二 使用 objcopy上篇文章:ARM 嵌入式 编译系列 10.1 – GCC 编译缩减可执行文件 elf 文件大小 下篇文章:ARM 嵌入式 编译系列 10.3 – GNU elfutils 工具小结 符号表与可执行程序分离 接着上篇文章 ARM 嵌入式 编译…...

Gin各种参数接收

Gin参数接收 文章目录 Gin参数接收1.各个参数的接收方法Gin中发送JSON数据Gin接收querystring数据Gin接收Form的参数Gin接收URI参数 2.参数绑定方式接收(更加方便)推荐一款软件 1.各个参数的接收方法 声明: 这里的c都是c *gin.Context中的c Gin中发送JSON数据 在传输或接受JS…...

【Python】进阶之 MySQL入门教程

文章目录 数据库概述Mysql概述Mysql安装与使用Navicat安装和使用Mysql终端指令操作Mysql和python交互订单管理案例实现 数据库概述 数据库的由来 发展历程说明人工管理阶段用纸带等进行数据的存储文件系统阶段数据存储在文件中数据库阶段解决了文件系统问题高级数据库阶段分布式…...

Word 2019打开.doc文档后图片和公式不显示(呈现为白框)的解决办法

Word 2019打开.doc文档后图片和公式不显示&#xff08;呈现为白框&#xff09;的解决办法 目录 Word 2019打开.doc文档后图片和公式不显示&#xff08;呈现为白框&#xff09;的解决办法一、问题描述二、解决方法1.打开 WORD 2019&#xff0c;点击菜单中的“文件”&#xff1b;…...

三个整数排序

描述 给定三个整数&#xff0c;请将它们按从小到大的顺序输出。 输入 输入为一行&#xff0c;包含三个整数&#xff0c;用空格分隔。 输出 输出为一行&#xff0c;包含三个整数&#xff0c;用空格分隔&#xff0c;表示排序后的结果。 输入样例 1 9 3 7 输出样例 1 3 …...

Nginx反向代理出现错误 502 bad gateway 案例解析

场景描述 Nginx uwsgi flask Flask框架写的程序&#xff0c;使用uwsgi启动&#xff0c;Nginx作为反向代理调用Flask应用。 Flask应用有些操作时间比较长&#xff0c;会超过1分钟&#xff0c;在网页端访问会出现错误: 502 bad gateway。 Nginx的错误日志中会出现错误&#xf…...

截止到目前全量主体总数有多少?

企业主体类型 企业主体类型有很多种&#xff0c;一般我们会分为公司&#xff08;有限责任&#xff09;、合伙企业、个人独资企业、个体经营户这些类别。 今天我们按照企业&#xff0c;个体&#xff0c;组织的分类方式来看各个主体的总数。 企业&#xff1a;统一社会信用代码…...

HTTP--Request详解

请求消息数据格式 请求行 请求方式 请求url 请求协议/版本 GET /login.html HTTP/1.1 请求头 客户端浏览器告诉服务器一些信息 请求头名称: 请求头值 常见的请求头&#xff1a; User-Agent&#xff1a;浏览器告诉服务器&#xff0c;我访问你使用的浏览器版本信息 可…...

Linux C++ 网络编程基础(2) : TCP多线程一个server对应多个client

目录 一、linux posix线程相关函数介绍二、tcp server基础版本三、tpc服务端多线程版本四、tpc客户端代码tcp编程时, 一个server可以对应多个client, server端用多线程可以实现. linux下多线程可以使用POSIX的线程函数, 下面给出服务端和客户端的代码. 一、linux posix线程相关…...

如何构建一个 NodeJS 影院微服务并使用 Docker 部署

文章目录 前言什么是微服务&#xff1f;构建电影目录微服务构建微服务从 NodeJS 连接到 MongoDB 数据库总结 前言 如何构建一个 NodeJS 影院微服务并使用 Docker 部署。在这个系列中&#xff0c;将构建一个 NodeJS 微服务&#xff0c;并使用 Docker Swarm 集群进行部署。 以下…...

BEVFusion(ICRA-2023)--01

说明&#xff1a;论文 BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation 原代码运行记录 原始环境&#xff1a;python 3.9 torch 1.12 &#xff08;失败&#xff09; 报错&#xff1a; python setup.py develop/mmdet3d/ops/ball_qu…...

Java——Iterator迭代器

在程序开发中&#xff0c;经常需要遍历集合中的所有元素。针对这种需求&#xff0c;JDK专门提供了一个接口java.util.Iterator。Iterator接口也是Java集合中的一员&#xff0c;但它与Collection、Map接口有所不同&#xff0c;Collection接口与Map接口主要用于存储元素&#xff…...

GCC编译过程:预处理->编译->汇编->链接

目录 引言 概括介绍 一、预处理 二、编译 三、汇编 四、链接 总结 引言 当使用集成开发环境&#xff08;IDE&#xff09;进行C语言编程时&#xff0c;点击"编译"按钮后&#xff0c;整个C程序从源代码到可执行文件的生成过程会自动完成。IDE会在后台为我们执行C…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...

论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving

地址&#xff1a;LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂&#xff0c;正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

【java面试】微服务篇

【java面试】微服务篇 一、总体框架二、Springcloud&#xff08;一&#xff09;Springcloud五大组件&#xff08;二&#xff09;服务注册和发现1、Eureka2、Nacos &#xff08;三&#xff09;负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...