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

Arrays 的使用

Arrays

概述

提供了数组操作的相关方法,连接数组和集合

asList

  1. 返回指定数组的列表
  2. 列表和数组的引用位置相同
      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

  1. 二分法查找元素
  2. 需要进行排序
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

  1. 创建数组副本
  2. 一个新的数组
     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

  1. 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

  1. 经过比较 速断快与sort
  2. 使用频率越高越明显
  3. 数据量越大越明显从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 为所有的元素赋值

  1. 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 概述 提供了数组操作的相关方法&#xff0c;连接数组和集合 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调试工具&#xff0c;那么有没有一种方法可以不用手动写入接口到Postman&#xff0c;即可进行接口调试操作&#xff1f;今天给大家推荐一款IDEA插件&#xff1a;Apipost Helper&#xff0c;写完代码就可以调试接口并一键生成接口文档&#xff01;而且还…...

基于机器视觉的车牌检测-边缘检测因子的选择

车牌检测概述 车牌识别在检测报警、汽车出入登记、交通违法违章以及移动电子警察方面应用广泛。车牌识别过程为&#xff1a;首先通过摄像头获取包含车牌的彩色图像&#xff1b;然后进行车牌边缘检测&#xff0c;先粗略定位到车牌位置&#xff0c;再精细定位&#xff1b;最后根…...

学习c语言,变种水仙花

利用函数次方pow...

K8S--持久卷(PersistentVolume)的用法

原文网址&#xff1a;K8S--持久卷(PersistentVolume)的用法-CSDN博客 简介 本文介绍K8S的持久卷(PersistentVolume)的用法。 目标&#xff1a;用持久卷的方式将主机的磁盘与容器磁盘映射&#xff0c;安装nginx并运行。 --------------------------------------------------…...

书生·浦语大模型趣味 Demo笔记及作业

文章目录 笔记作业基础作业&#xff1a;进阶作业&#xff1a; 笔记 书生浦语大模型InternLM-Chat-7B 智能对话 Demo&#xff1a;https://blog.csdn.net/m0_49289284/article/details/135412067书生浦语大模型Lagent 智能体工具调用 Demo&#xff1a;https://blog.csdn.net/m0_…...

2024最新前端源码分享(附效果图及在线演示)

分享10款非常有趣的前端特效源码 其中包含css动画特效、js原生特效、svg特效以及小游戏等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 粒子文字动画特效 基于canvas实现的粒子文字动画特效 会来回切换设定的文字特效 图…...

Microsoft 365 for Mac激活版(原Office 365)

Microsoft 365 for Mac原office 365&#xff0c;包含Word、Excel、PowerPoint 和 Outlook应用程序&#xff0c;协作办公的最佳首选。 软件下载&#xff1a;Microsoft 365 for Mac激活版下载 Microsoft 365 的一些主要功能包括&#xff1a; office 应用程序&#xff1a;Microsof…...

快乐学Python,Python基础之组织代码「类与对象」

在上一篇文章中&#xff0c;我们了解了函数。这一篇文章我们来了解一下Python中另外一个重要的概念&#xff1a;类与对象。 1、类与对象 &#xff08;1&#xff09;类与对象有什么关系&#xff1f; 你可能会奇怪&#xff0c;为什么要叫类与对象呢&#xff1f;是两个不同的东…...

H5的3D游戏开源框架

在H5的3D游戏框架中&#xff0c;Three.js、Babylon.js和Turbulenz是比较受欢迎的选择。 Three.js是一个广泛应用并且功能强大的JavaScript 3D库&#xff0c;可以创建简单的3D动画到创建交互的3D游戏。 Babylon.js是David Catuhe对3D游戏引擎热爱的结果&#xff0c;是最好的Ja…...

浅谈一些生命周期

vue2生命周期 beforeCreate &#xff1a;实例创建之初 created&#xff1a;组件已经创建完成 beforeMount&#xff1a;组件挂载之前 mounted:组件挂载之后 beforeUpdate&#xff1a;数据发生变化 更新之前 undated&#xff1a;数据发生之后 beforeDestroy &#xff1a;实…...

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系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 生命周期 1.1. 认识生命周期 很多的事物都有从创建到销毁的整个过程&#xff0c;这个过程称之为是生命周期&…...

一文初步了解slam技术

本文初步介绍slam技术&#xff0c;主要是slam技术的概述&#xff0c;涉及技术原理、应用场景、分类、以及各自优缺点&#xff0c;和slam技术的未来展望。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;slam精进之…...

滑动窗口协议仿真(2024)

1.题目描述 滑动窗口协议以基于分组的数据传输协议为特征&#xff0c;该协议适用于在数据链路层以及传输层中对按 顺序传送分组的可靠性要求较高的环境。在长管道传输过程&#xff08;特别是无线环境&#xff09;中&#xff0c;相应的滑动窗口 协议可实现高效的重传恢复。附录 …...

uniapp上传文件时用到的api是什么?格式是什么?

在UniApp中&#xff0c;你可以使用uni.uploadFile()方法来上传文件。这是一个异步方法&#xff0c;用于将本地资源上传到服务器。 该方法的基本格式如下&#xff1a; uni.uploadFile({url: 上传接口地址,filePath: 要上传的文件路径,name: 后端接收的文件参数名,formData: {/…...

Java面试——框架篇

1、Spring框架中的单例bean是线程安全的吗&#xff1f; 所谓单例就是所有的请求都用一个对象来处理&#xff0c;而多例则指每个请求用一个新的对象来处理。 结论&#xff1a;线程不安全。 Spring框架中有一个Scope注解&#xff0c;默认的值就是singleton&#xff0c;单例的。一…...

GO语言笔记1-安装与hello world

SDK开发工具包下载 Go语言官网地址&#xff1a;golang.org&#xff0c;无法访问Golang中文社区&#xff1a;首页 - Go语言中文网 - Golang中文社区下载地址&#xff1a;Go下载 - Go语言中文网 - Golang中文社区 尽量去下载稳定版本&#xff0c;根据使用系统下载压缩包格式的安装…...

指针传参误区

C语言中指针作为形参传递时&#xff0c;func&#xff08;*a, *b&#xff09; 这种形式的话&#xff0c;是无法通过简单的 ab来修改的&#xff0c;在函数体内a的地址确实被修改成b的地址了&#xff0c;但是当函数执行结束时&#xff0c;a的地址会重新回到原本的地址里面&#xf…...

力扣-42.接雨水

题目&#xff1a; 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组[0,1,0,2…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...