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

数组 (java)

文章目录

  • 一维数组
    • 静态初始化
    • 动态初始化
  • 二维数组
    • 静态初始化
    • 动态初始化
  • 数组参数传递
  • 可变参数
  • 关于 main 方法的形参 args
  • Array 工具类
    • sort 中的 comparable 和 comparator
      • comparator 比较器排序
      • comparable 自然排序

一维数组

线性结构

静态初始化

第一种:int[] arr = {1,2,3,4},
第二种:int[] arr = new int[] {1,2,3,4,5};

括号放变量名后面也行



动态初始化

int[] arr = new int[5];
arr[0] = 1;

动态初始化后,都会有默认值
在这里插入图片描述




二维数组

二维数组就是中的每个元素都是一个一维数组

在这里插入图片描述

静态初始化

第一种:int[][] arr = {{1,2,3,4,},{1,2,3}};
第二种:int[][] arr2 = new int[][] {{1,2}, {1}};


动态初始化

等长:int[][] arr = new int[5][4];//表示有3个一维数组,长度可以自己定制
不等长:int[][] arr = new int[3][];arr[0] = new int[4];arr[1] = new int[2];arr[2] = new int[2];



数组参数传递

public class Teset {public static void main(String[] args) {int[][] arr = new int[][] {{1,2,3},{1,2}};System.out.println(arr); //[[I@4eec7777int[][] newarr = func(arr);System.out.println(newarr);//[[I@4eec7777}public static int[][] func(int[][] arr) {for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.print(arr[i][j]);}System.out.println();}return arr;}
}

数组是引用类型,所以传的是地址,而且会影响传过来的数组的值,因为传的是地址,返回值这块也是把原本的地址返回去




可变参数

ublic class Teset {public static void main(String[] args) {int[] arr3 = func(1,2,3,4);System.out.println(arr3);//[I@4eec7777int[] arr4 = func(1,2,3);System.out.println(arr4);//[I@3b07d329int[] arr = new int[] {1,2,3,4};System.out.println(arr);//[I@41629346int[] arr2 = func(arr);System.out.println(arr2);//[I@41629346}public static int[] func(int...num) {return num;}}

可变参数本质上就是一个一维数组

在形参列表中,可变参数只能有一个,并且只能在参数列表的末尾出现




关于 main 方法的形参 args

作用:接收命令行参数用的,例如cmd中的 ipconfig -t 这个 -t 就是命令行参数

public class array {public static void main(String[] args) {}  
}

jvm 调用 array.main 方法的时候,创建一个 string 数组, 对"命令行参数" “abc def xyz" 以空格进行拆分,生成一个新的数组对象,最后这个数组对象是 String[] args = {“abc”, “def”, “xyz”},没有指定命令行参数,那它就是个长度为 0 的数组

需求

使用系统,需要提供正确口令(用户名和密码)在只有命令行的情况下

如果用户名是admin 并且密码是 admin123,则表示合法用户,非法用户直接退出,




Array 工具类

在这里插入图片描述
超过4096个数据用 parallelsort



sort 中的 comparable 和 comparator

sort 实现的是自然排序

comparator 比较器排序

这里匿名内部类, 实现底层的 comparator 接口,然后重写 compare 方法,得到一个比较器对象
返回正数:大的数放后面 (o1 > o2 )
返回负数:小的数放后面 (o1 < o2 )
相等:直接放一样的后面 (o1 = o2 )

public class Teset {public static void main(String[] args) {Integer[] arr = {1,2,1,3,2,5,4};Arrays.sort(arr, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1 - o2;}});System.out.println(Arrays.toString(arr));}}


comparable 自然排序

自定义的类,没有没有自然排序,所以要自己实现
返回正数:大的数放后面 (o1 > o2 )
返回负数:小的数放后面 (o1 < o2 )
相等:直接放一样的后面 (o1 = o2 )

public class Teset {public static void main(String[] args) {Test test = new Test(10);Test test1 = new Test(4);Test test2 = new Test(30);Test[] tarr = {test, test1, test2};//自定义类底层没有自然排序所以要自己实现一个,不然会报错Arrays.sort(tarr);System.out.println(Arrays.toString(tarr));}}class Test implements Comparable {int age;public Test(int age) {this.age = age;}@Overridepublic int compareTo(Object o) {Test t = (Test) o;return this.age - t.age;}@Overridepublic String toString() {return "Test{" +"age=" + age +'}';}
}

相关文章:

数组 (java)

文章目录 一维数组静态初始化动态初始化 二维数组静态初始化动态初始化 数组参数传递可变参数关于 main 方法的形参 argsArray 工具类sort 中的 comparable 和 comparatorcomparator 比较器排序comparable 自然排序 一维数组 线性结构 静态初始化 第一种&#xff1a;int[] a…...

时序预测 | Matlab基于Transformer多变量时间序列多步预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于Transformer多变量时间序列多步预测&#xff1b; 2.多变量时间序列数据集&#xff08;负荷数据集&#xff09;&#xff0c;采用前96个时刻预测的特征和负荷数据预测未来96个时刻的负荷数据&#xff1b; 3…...

suuk-s.php.jpg-python 库劫持

做virtualBox的端口映射吧 suukmedim文件白名单绕过、反弹shell、$paht环境变量更改、python 库劫持提权、Reptile提权、sandfly-processdecloak使用 服务扫描 ┌──(kali㉿kali)-[~] └─$ sudo nmap -sV -A -T 4 -p 22,80 192.168.18.238GetSHell 访问80http://192.168.…...

python3GUI--ktv点歌软件By:PyQt5(附下载地址)

文章目录 一&#xff0e;前言二&#xff0e;展示1.启动2.搜索2.服务1.首页2.天气预报3.酒水饮料4.酒水饮料2 3.服务4.灯光5.调音6.排行榜7.分类点歌9.歌手点歌10.歌手个人页 三&#xff0e;心得体会1.关于代码2.关于设计3.关于打包 四&#xff0e;总结 文件大小&#xff1a;33.…...

opencascade AIS_InteractiveContext源码学习2

AIS_InteractiveContext 前言 交互上下文&#xff08;Interactive Context&#xff09;允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是&#xff0c;对于已经被交互上下文识别的交互对象&#xff0c;必须使用上下文方法进行…...

scale()函数详解

scale()函数是R语言中用于标准化和中心化数据的一个函数。这个函数通常用于数据预处理&#xff0c;以便于后续的分析和建模。下面是对scale()函数的详细介绍&#xff1a; 用法 scale(x, center TRUE, scale TRUE)参数 x: 一个数值型向量、矩阵或数据框&#xff0c;是需要进…...

计算机基础学习有多重要?学哪些?如何学?

计算机基础是我们计算机生涯的开始&#xff0c;而对大学生来说&#xff0c;基础是一方面&#xff0c;更重要的是应对面试。这样说吧&#xff0c;校招&#xff1a;计算机基础占90%&#xff0c;专业知识占10%&#xff0c;社招&#xff1a;计算机基础占20%&#xff0c;专业知识占8…...

Oracle day9

------------------------------------------------------------------------------------ --创建用户 create user test1 identified by 123456; create user ZJun identified by 888888; --授予权限 grant create session to test1; grant create session to ZJun; --删除用…...

Race Condition竞争条件

Race Condition Question – why was there no race condition in the first solution (where at most N – 1) buffers can be filled?Processes P0 and P1 are creating child processes using the fork() system callRace condition on kernel variable next_available_pid…...

docker 删除本地镜像释放磁盘空间

时间一长&#xff0c;本地镜像文件特别多&#xff1a; 1 linux 配置crontab 定期删除 crontab l 查看 crontab e 编辑 30 3 * * * /home/mqq/gengmingming/cleanImage-realize.sh > /home/mqq/gengmingming/cleanImage-realize.log 2>&12 cleanImage-realize.sh …...

JVM中的垃圾回收器

文章目录 垃圾回收器发展史垃圾回收器分类按线程数分类按工作模式分类按处理方式分类 查看默认垃圾收集器评估垃圾回收器性能指标吞吐量暂停时间吞吐量对比暂停时间 7种经典的垃圾回收器垃圾回收器与垃圾分代垃圾收集器的组合关系Serial GCParNew GCParallel Scavenge GCSerial…...

记录一些可用的AI工具网站

记录一些可用的AI工具网站 AI对话大模型AI图片生成AI乐曲生成AI视频生成AI音频分离 AI对话大模型 当前时代巅峰&#xff0c;Microsoft Copilot&#xff1a;https://copilot.microsoft.com AI图片生成 stable diffusion模型资源分享社区&#xff0c;civitai&#xff1a;https…...

vue3页面传参

一&#xff0c;用query传参 方法&#xff1a; router.push({path: ‘路由地址’, query: ‘参数’}) 例子&#xff1a;a页面携带参数跳转到b页面并且b页面拿到a页面传递过来的参数 在路由router.ts配置 a页面&#xff1a; <template><div >a页面</div>…...

QNX OS微内核系统

微内核架构 微内核(Microkernel)架构是一种操作系统架构模式,其核心思想是尽量将操作系统的基本功能压缩在最小的核心中,而将其他服务(如设备驱动、文件系统、网络协议等)放在用户空间中运行,从而增加系统的灵活性和安全性,这种架构有几个主要特点和优势: 最小化核心…...

ViT:5 Knowledge Distillation

实时了解业内动态&#xff0c;论文是最好的桥梁&#xff0c;专栏精选论文重点解读热点论文&#xff0c;围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;…...

2024头歌数据库期末综合(部分题)

目录 第7关&#xff1a;数据查询三 任务描述 知识补充 答案 第8关&#xff1a;数据查询四 任务描述 知识补充 答案 本篇博客声明&#xff1a;所有题的答案不在一起&#xff0c;可以去作者博客专栏寻找其它文章。 第7关&#xff1a;数据查询三 任务描述 本关任务&#x…...

【Flask】学习

参考B站视频&#xff1a;https://www.bilibili.com/video/BV1v7411M7us/ 目录 第一讲 什么是 flask 修饰器、路由规则 flask 变量规则&#xff0c;灵活传参数据类型&#xff1a;str、int、float&#xff08;正浮点数&#xff0c;传int会报错&#xff09;、path、uuid app.…...

图像数字化基础

一、像素 1、获取图像指定位置的像素 import cv2 image cv2.imread("E:\\images\\2.png") px image[291,218] print("坐标(291,218)上的像素的BGR值是&#xff1a;",px) &#xff08;1&#xff09;RGB色彩空间 R通道&#xff1a;红色通道 G通道&…...

让你的Python代码更简洁:一篇文章带你了解Python列表推导式

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 列表推导式 📒📝 语法📝 条件筛选📝 多重循环📝 列表推导式的优点📝 使用场景📝 示例代码🎯 示例1🎯 示例2⚓️ 相关链接 ⚓️📖 介绍 📖 在Python编程中,列表推导式是一种强大且高效的语法,它允许你用…...

基于Matlab的BP神经网络的车牌识别系统(含GUI界面)【W7】

简介&#xff1a; 本系统结合了图像处理技术和机器学习方法&#xff08;BP神经网络&#xff09;&#xff0c;能够有效地实现车牌的自动识别。通过预处理、精确定位、字符分割和神经网络识别&#xff0c;系统能够准确地识别各种车牌图像&#xff0c;并在智能交通管理、安防监控等…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

MySQL 知识小结(一)

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

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...