数组 (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 +'}';}
}

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

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

相关文章

IDEA插件推荐-CodeGeex

功能&#xff1a;这个插件可以实现快速翻译代码&#xff0c;json文件格式转换&#xff0c;代码语言类型转换。 安装方式&#xff1a;File->Settings->Plugins->MarketPlace->搜索“CodeGeex”即可 &#xff08;CodeGeex功能展示&#xff09; &#xff08;CodeGeex…

模拟算法讲解

模拟算法是一种基于实际情况模拟的算法&#xff0c;通过模拟现实世界中的系统或过程&#xff0c;来研究它们的性质和行为。模拟算法可以用于解决各种问题&#xff0c;包括物理模拟、经济模拟、社会模拟等。 模拟算法的基本步骤包括&#xff1a; 定义问题&#xff1a;明确需要模…

【STM32c8t6】AHT20温湿度采集

【STM32c8t6】AHT20温湿度采集 一、探究目的二、探究原理2.1 I2C2.1. 硬件I2C2.1. 软件I2C 2.2 AHT20数据手册 三、实验过程3.1 CubeMX配置3.2 实物接线图3.3 完整代码3.4 效果展示 四、探究总结 一、探究目的 学习I2C总线通信协议&#xff0c;使用STM32F103完成基于I2C协议的A…

android串口助手apk下载 源码 演示 支持android 4-14及以上

android串口助手apk下载 1、自动获取串口列表 2、打开串口就开始接收 3、收发 字符或16进制 4、默认发送at\r\n 5、android串口助手apk 支持android 4-14 &#xff08;Google seral port 太老&#xff09; 源码找我 需要 用adb root 再setenforce 0进入SELinux 模式 才有权限…

【数据结构导论】自考笔试题:伪代码练习题汇总 1

目录 一、开源项目推荐 二、线性表的基本运算在单链表上的实现 &#xff08;1&#xff09;初始化 &#xff08;2&#xff09;插入 p 指向的新结点的操作 &#xff08;3&#xff09;删除 *p 节点 三、循环链表 &#xff08;1&#xff09;在单链表中 &#xff08;2&…

如何打包数据库文件

使用 mysqldump 命令&#xff1a; mysqldump -u username -p database_name > output_file.sql username 是数据库的用户名。database_name 是要导出的数据库名称。output_file.sql 是导出的 SQL 文件名&#xff0c;可以自定义。 示例&#xff1a; mysqldump -u root -p…

urfread刷算法题day1|LeetCode2748.美丽下标的数目

题目 题目链接 LeetCode2748.美丽下标对的数目 题目描述 给你一个下标从 0 开始的整数数组 nums 。 如果下标对 i、j 满足 0 ≤ i < j < nums.length &#xff0c; 如果 nums[i] 的 第一个数字 和 nums[j] 的 最后一个数字 互质 &#xff0c; 则认为 nums[i] 和 nums…

基于PyTorch设计的全景图合成系统【文末完整工程源码下载】

前言 本项目实现基于PyTorch将多张图片合成为一张全景图。&#xff08;图像存储路径为/images/1&#xff09;。 作者&#xff1a;阿齐Archie&#xff08;联系我微信公众号&#xff1a;阿齐Archie&#xff09; 使用的图片为&#xff1a; 合成后为&#xff1a; 这个全景图项目主…

支持WebDav的网盘infiniCloud(静读天下,Zotero 等挂载)

前言 WebDav是一种基于HTTP的协议&#xff0c;允许用户在Web上直接编辑和管理文件&#xff0c;如复制、移动、删除等。 尽管有一些网盘支持WebDav&#xff0c;但其中大部分都有较多的使用限制。这些限制可能包括&#xff1a;上传文件的大小限制、存储空间的限制、下载速度的限…

如何打造稳定、好用的 Android LayoutInspector?

速度极慢&#xff0c;遇到复杂的布局经常超时 某些情况无法选中指定的 View 本文将围绕 LayoutInspector 的痛点&#xff0c;分析问题并修复&#xff0c;最终将 LayoutInspector 变成一个稳定、好用的插件。 二、加速 Dump View Hierarchy 2.1 问题描述 开发复杂业务的同学…

Spring Boot + WebSocket 实现 IM 即时通讯

文章目录 1. 项目环境准备2. 配置WebSocket3. 创建消息处理器4. 创建消息类5. 创建前端页面6. 启动应用并测试7. 分析与扩展结论 &#x1f389;欢迎来到SpringBoot框架学习专栏~ ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;…

Go语言之基础入门

网站&#xff1a;http://hardyfish.top/ 免费书籍分享&#xff1a; 资料链接&#xff1a;https://url81.ctfile.com/d/57345181-61545511-81795b?p3899 访问密码&#xff1a;3899 免费专栏分享&#xff1a; MySQL是怎样运行的从根儿上理解MySQL 课程链接&#xff1a;https:/…

nn.Embedding 根据索引生成的向量有权重吗

import torch import torch.nn as nn 假设有一个大小为 10x3 的 Embedding 层&#xff0c;其中有 10 个单词&#xff0c;每个单词用一个长度为 3 的向量表示 num_words 10 embedding_dim 3 创建 Embedding 层 embedding_layer nn.Embedding(num_words, embedding_dim) p…

LeetCode 算法:翻转二叉树 c++

原题链接&#x1f517;&#xff1a;翻转二叉树 难度&#xff1a;简单⭐️ 题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 示例 …

【Python】已解决:安装python-Levenshtein包时遇到的subprocess-exited-with-error问题

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例及解决方案五、注意事项 已解决&#xff1a;安装python-Levenshtein包时遇到的subprocess-exited-with-error问题 一、分析问题背景 在安装python-Levenshtein这个Python包时&#xff0c;有时会…

godot所有2D节点介绍

五十个2D节点介绍 2D节点介绍 前言一、Node2D二、sprite2D三、AnimatedSprite2D四、Camera2D五、PhysicsBody2D六、 RigidBody2D七、CharacterBody2D八、StaticBody2D九、joint2D十、DampedSpringJoint2D十一、GrooveJoint2D十二、PinJoint2D十三、Area2D十四、AnimatableBody2…

智能优化算法改进策略之局部搜索算子(三)—二次插值法

1、原理介绍 多项式是逼近函数的一种常用工具。在寻求函数极小点的区间&#xff08;即寻查区间&#xff09;上&#xff0c;我们可以利用在若干点处的函数值来构成低次插值多项式&#xff0c;用它作为求极小点的函数的近似表达式&#xff0c;并用这个多项式的极小点作为原函数极…

快速业务建模

一句话故事 培训学院进行新季度招生工作&#xff0c;出计划后教务处审批&#xff0c;教学秘书下发计划&#xff0c;班主任手机名单审核后完成计划 用户故事 角色 时间线 动作为动名词 业务建模 多次建模&#xff0c;模型是否能完成业务

高考填报志愿(选专业),怎样找准自己的兴趣?

在很多的高考报考指南中&#xff0c;第一要点&#xff0c;都会建议我们根据自己的兴趣来选择自己的专业。很多人虽然是依据这条规则&#xff0c;选择了自己大学的专业。却依然在学习的过程中发现&#xff0c;好像自己对这个专业并不是那么的有兴趣。 甚至对专业学习深入了解之…

docker部署ClamAV集成java和python实现文件病毒扫描

介绍 官方文档&#xff1a;https://docs.clamav.net/manual/Signatures/DatabaseInfo.html ClamAV 是一个开源的反病毒引擎&#xff0c;它由多个模块组成&#xff0c;负责不同的任务处理。以下是 ClamAV 的主要模块和它们的功能&#xff1a; clamd&#xff1a;clamd 是 Clam…