Arrays 的使用
Arrays
概述
提供了数组操作的相关方法,连接数组和集合
asList
- 返回指定数组的列表
- 列表和数组的引用位置相同
Integer[] arrs = new Integer[] {1,2,3,4,5,6,7,8,9};List<Integer> list = Arrays.asList(arrs);System.out.println(list);arrs[5] = 100;System.out.println(list);//[1, 2, 3, 4, 5, 6, 7, 8, 9]//[1, 2, 3, 4, 5, 100, 7, 8, 9]}
binarySearch
- 二分法查找元素
- 需要进行排序
Integer[] arrs = new Integer[] {1,2,3,4,5,6,7,8,9};int num = Arrays.binarySearch(arrs, 5);System.out.println(num);
//4
copyOf copyOfRange
- 创建数组副本
- 一个新的数组
Integer[] arrs = new Integer[] {1,2,3,4,5,6,7,8,9};Integer[] arrs1 = Arrays.copyOf(arrs, 5);for(Integer i : arrs1) {System.out.print(i + " ");}System.out.println();//1 2 3 4 5 arrs1[3] = 100;for(Integer i : arrs) {System.out.print(i + " ");}//1 2 3 4 5 6 7 8 9 System.out.println();for(Integer i : arrs1) {System.out.print(i + " ");}//1 2 3 100 5 Integer[] ret = Arrays.copyOf(arrs,20,Integer[].class);System.out.println();for(Integer i : ret) {System.out.print(i + " ");}//1 2 3 4 5 6 7 8 9 null null null null null null null null null null nullInteger[] range = Arrays.copyOfRange(arrs, 5, 20);System.out.println();for(Integer i : ret) {System.out.print(i + " ");}//1 2 3 4 5 6 7 8 9 null null null null null null null null null null null
equals deepEquals
- deepEquals 是深层次的比较,比如嵌套数组
Integer[] arrs = new Integer[] {1,2,3,4,5,6,7,8,9};Integer[] arrs1 = new Integer[] {1,2,3,4,5,6,7,8,9};System.out.println(arrs);System.out.println(arrs1);System.out.println(Arrays.equals(arrs, arrs1));
// [Ljava.lang.Integer;@2077d4de
// [Ljava.lang.Integer;@7591083d
// true
Arrays.fill填充数组
public void test5() {Integer[] arrs = new Integer[10];Arrays.fill(arrs, 100);for(Integer i : arrs) {System.out.print(i + " ");}//100 100 100 100 100 100 100 100 100 100 }
sort
public void test6() {Integer[] arrs = new Integer[20];for(int i=0;i<20;i++)arrs[i] = (int)(Math.random()*100);for(int i:arrs) {System.out.print(i + " ");}System.out.println();//49 40 0 79 4 98 12 81 71 27 9 45 16 17 7 92 63 22 73 22 Arrays.sort(arrs);for(int i:arrs) System.out.print(i + " ");System.out.println();//0 4 7 9 12 16 17 22 22 27 40 45 49 63 71 73 79 81 92 98 Arrays.sort(arrs,(o1,o2)->o2-o1);for(int i:arrs) System.out.print(i + " ");//98 92 81 79 73 71 63 49 45 40 27 22 22 17 16 12 9 7 4 0 }
parallelSort
- 经过比较 速断快与sort
- 使用频率越高越明显
- 数据量越大越明显从1000~10000000开始进行100次测试
public void test7() {//生产1万个元素int len = 100000;Integer[] arrs = new Integer[len];for(int i=0;i<len;i++)arrs[i] = (int)(Math.random()*100);long t1 = System.currentTimeMillis();Arrays.sort(arrs);long t2 = System.currentTimeMillis();System.out.println("sort\t"+(t2-t1));for(int i=0;i<len;i++)arrs[i] = (int)(Math.random()*100);long t3 = System.currentTimeMillis();Arrays.parallelSort(arrs);long t4 = System.currentTimeMillis();System.out.println("parallelSort\t"+(t4-t3));System.out.println("------------------------------");}
public void test8() {for(int i=0;i<100;i++) {test7();}}
sort 35
parallelSort 64
------------------------------
sort 40
parallelSort 73
------------------------------
sort 107
parallelSort 53
------------------------------
sort 73
parallelSort 63
------------------------------
sort 74
parallelSort 62
····
····
spliterator 遍历数组
int len = 100;Integer[] arrs = new Integer[len];for(int i=0;i<len;i++)arrs[i] = (int)(Math.random()*100);Spliterator<Integer> s = Arrays.spliterator(arrs);s.forEachRemaining((e)->System.out.print(e + " "));
Stream
public void test10() {int len = 10;Integer[] arrs = new Integer[len];for(int i=0;i<len;i++)arrs[i] = (int)(Math.random()*100);List<Integer> list = Arrays.stream(arrs).collect(Collectors.toList());System.out.println(list);//[56, 33, 59, 63, 55, 37, 68, 52, 53, 3]}
setAll parallelSetAll 为所有的元素赋值
- parallelSetAll 并行处理,速度会快
public void test11() {int len = 10;Integer[] array = new Integer[len];Arrays.setAll(array, (e)->10);for(int i:array)System.out.print(i + " ");System.out.println();Arrays.parallelSetAll(array, (e)->e + 10);for(int i:array)System.out.print(i + " ");// 10 10 10 10 10 10 10 10 10 10
// 10 11 12 13 14 15 16 17 18 19 }
parallelPrefix 每个元素都包含对前面的所有元素应用某个操作的累计结果
public void test12() {int len = 10;int[] array = new int[len];Arrays.parallelPrefix(array, (e,u)->{System.out.println(e + "\t" + u);return e +1;});System.out.println();for(int i:array)System.out.print(i + " ");}
toString deepToString(嵌套数组) hashCode deepHashCode
public void test13() {int len = 10;Integer[] arrs = new Integer[len];for(int i=0;i<len;i++)arrs[i] = (int)(Math.random()*100);System.out.println(Arrays.toString(arrs));System.out.println(Arrays.hashCode(arrs));}
相关文章:
Arrays 的使用
Arrays 概述 提供了数组操作的相关方法,连接数组和集合 asList 返回指定数组的列表列表和数组的引用位置相同 Integer[] arrs new Integer[] {1,2,3,4,5,6,7,8,9};List<Integer> list Arrays.asList(arrs);System.out.println(list);arrs[5] 100;Syste…...
IDEA中怎么用Postman?这款插件你试试
Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:Apipost Helper,写完代码就可以调试接口并一键生成接口文档!而且还…...
基于机器视觉的车牌检测-边缘检测因子的选择
车牌检测概述 车牌识别在检测报警、汽车出入登记、交通违法违章以及移动电子警察方面应用广泛。车牌识别过程为:首先通过摄像头获取包含车牌的彩色图像;然后进行车牌边缘检测,先粗略定位到车牌位置,再精细定位;最后根…...
学习c语言,变种水仙花
利用函数次方pow...
K8S--持久卷(PersistentVolume)的用法
原文网址:K8S--持久卷(PersistentVolume)的用法-CSDN博客 简介 本文介绍K8S的持久卷(PersistentVolume)的用法。 目标:用持久卷的方式将主机的磁盘与容器磁盘映射,安装nginx并运行。 --------------------------------------------------…...
书生·浦语大模型趣味 Demo笔记及作业
文章目录 笔记作业基础作业:进阶作业: 笔记 书生浦语大模型InternLM-Chat-7B 智能对话 Demo:https://blog.csdn.net/m0_49289284/article/details/135412067书生浦语大模型Lagent 智能体工具调用 Demo:https://blog.csdn.net/m0_…...
2024最新前端源码分享(附效果图及在线演示)
分享10款非常有趣的前端特效源码 其中包含css动画特效、js原生特效、svg特效以及小游戏等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 粒子文字动画特效 基于canvas实现的粒子文字动画特效 会来回切换设定的文字特效 图…...
Microsoft 365 for Mac激活版(原Office 365)
Microsoft 365 for Mac原office 365,包含Word、Excel、PowerPoint 和 Outlook应用程序,协作办公的最佳首选。 软件下载:Microsoft 365 for Mac激活版下载 Microsoft 365 的一些主要功能包括: office 应用程序:Microsof…...
快乐学Python,Python基础之组织代码「类与对象」
在上一篇文章中,我们了解了函数。这一篇文章我们来了解一下Python中另外一个重要的概念:类与对象。 1、类与对象 (1)类与对象有什么关系? 你可能会奇怪,为什么要叫类与对象呢?是两个不同的东…...
H5的3D游戏开源框架
在H5的3D游戏框架中,Three.js、Babylon.js和Turbulenz是比较受欢迎的选择。 Three.js是一个广泛应用并且功能强大的JavaScript 3D库,可以创建简单的3D动画到创建交互的3D游戏。 Babylon.js是David Catuhe对3D游戏引擎热爱的结果,是最好的Ja…...
浅谈一些生命周期
vue2生命周期 beforeCreate :实例创建之初 created:组件已经创建完成 beforeMount:组件挂载之前 mounted:组件挂载之后 beforeUpdate:数据发生变化 更新之前 undated:数据发生之后 beforeDestroy :实…...
JavaScript基础(25)_dom查询练习(二)
<!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><title>dom查询练习二</title><link rel"stylesheet" href"../browser_default_style/reset.css"><style>form {margi…...
【React系列】React生命周期、setState深入理解、 shouldComponentUpdate和PureComponent性能优化、脚手架
本文来自#React系列教程:https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 生命周期 1.1. 认识生命周期 很多的事物都有从创建到销毁的整个过程,这个过程称之为是生命周期&…...
一文初步了解slam技术
本文初步介绍slam技术,主要是slam技术的概述,涉及技术原理、应用场景、分类、以及各自优缺点,和slam技术的未来展望。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:slam精进之…...
滑动窗口协议仿真(2024)
1.题目描述 滑动窗口协议以基于分组的数据传输协议为特征,该协议适用于在数据链路层以及传输层中对按 顺序传送分组的可靠性要求较高的环境。在长管道传输过程(特别是无线环境)中,相应的滑动窗口 协议可实现高效的重传恢复。附录 …...
uniapp上传文件时用到的api是什么?格式是什么?
在UniApp中,你可以使用uni.uploadFile()方法来上传文件。这是一个异步方法,用于将本地资源上传到服务器。 该方法的基本格式如下: uni.uploadFile({url: 上传接口地址,filePath: 要上传的文件路径,name: 后端接收的文件参数名,formData: {/…...
Java面试——框架篇
1、Spring框架中的单例bean是线程安全的吗? 所谓单例就是所有的请求都用一个对象来处理,而多例则指每个请求用一个新的对象来处理。 结论:线程不安全。 Spring框架中有一个Scope注解,默认的值就是singleton,单例的。一…...
GO语言笔记1-安装与hello world
SDK开发工具包下载 Go语言官网地址:golang.org,无法访问Golang中文社区:首页 - Go语言中文网 - Golang中文社区下载地址:Go下载 - Go语言中文网 - Golang中文社区 尽量去下载稳定版本,根据使用系统下载压缩包格式的安装…...
指针传参误区
C语言中指针作为形参传递时,func(*a, *b) 这种形式的话,是无法通过简单的 ab来修改的,在函数体内a的地址确实被修改成b的地址了,但是当函数执行结束时,a的地址会重新回到原本的地址里面…...
力扣-42.接雨水
题目: 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组[0,1,0,2…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
