数组常见操作

8.19 day7

数组常见操作

  • 获取数组最值
public static int maxElement(int[] arr) {

// 假设第一个元素的值就是最大值

int max = arr[0];

// 遍历数组元素,依次和假设的最大值作比较

for(int i = 1; i < arr.length; i++) {

// 取出每个元素的值和value作比较

if(arr[i] > max) {

// 推翻假设,更新最大值

max = arr[i];
}

}

return max;

}
     -  **&#x901A;&#x8FC7;&#x503C;&#x83B7;&#x53D6;&#x7D22;&#x5F15;**
`java
public&#xA0;static&#xA0;int&#xA0;search(int[] arr, int&#xA0;value) {

// &#x904D;&#x5386;&#x6570;&#x7EC4;&#xFF0C;&#x628A;&#x6570;&#x7EC4;&#x4E2D;&#x7684;&#x5143;&#x7D20;&#x4F9D;&#x6B21;&#x548C;value&#x4F5C;&#x6BD4;&#x8F83;

for(int&#xA0;i&#xA0;= 0; i&#xA0;< arr.length; i++) {

// &#x53D6;&#x51FA;&#x5143;&#x7D20;&#x503C;&#x548C;value&#x4F5C;&#x6BD4;&#x8F83;

if(arr[i] == value) {

return&#xA0;i; // &#x627E;&#x5230;&#x76F8;&#x540C;&#x7684;&#x5143;&#x7D20;&#xFF0C;&#x8FD4;&#x56DE;&#x7D22;&#x5F15;&#x4F4D;&#x7F6E;

}

}

// &#x672A;&#x627E;&#x5230;&#xFF0C;&#x5219;&#x8FD4;&#x56DE;-1

return&#xA0;-1;

}

  • 数组元素的反转
/**

* 将数组反序输出

* **@param** arr 需要反序的数组

* **@return** 返回反序后的数组

*/

public static int[] reverseOrderArray(int[] arr) {

// 定义一个反序后的数组

int[] desArr = new int[arr.length];

// 把原数组元素倒序遍历

for(int i = 0; i < arr.length; i++) {

// 把arr的第i个元素赋值给desArr的最后第i个元素中

desArr[arr.length - 1 - i] = arr[i];

}

// 返回倒序后的数组

return desArr;

}

实现(二):直接对数组中的元素进行收尾交换。

【示例二】

/**

* 将数组反序输出

* **@param** arr 需要反序的数组

*/

public static void reverseOrderArray(int[] arr) {

// 把原数组元素倒序遍历

for(int i = 0; i < arr.length/2; i++) {

// 把数组中的元素首尾交换

int temp = arr[i];

arr[i] = arr[arr.length - i - 1];

arr[arr.length - i - 1] = temp;

}

}

  • 数组元素的删除
public static int[] deleteElement(int[] arr, int index) {

// 第一步:判断索引是否合法

if(index < 0 || index >= arr.length) {

System._out_.println("索引越界");

return; // 索引不合法,直接结束方法

}

// 第二步:从index个元素开始,将后一个元素向前移动一位

for(int i = index; i < arr.length - 1; i++) {

// 将后一个元素向前移动一位

arr[i] = arr[i + 1];

}

// 第三步:将最后一个元素设置为默认值

arr[arr.length - 1] = 0;

return arr;

}

  • 数组元素和插入
public static int[] insertElement(int[] arr, int index, int value) {

// 第一步:判断索引是否合法

if(index < 0 || index >= arr.length) {

System._out_.println("索引越界");

// 抛出一个索引越界异常(异常第六章学习)。

throw new ArrayIndexOutOfBoundsException("索引越界:"+index);
}

// 第二步:给数组扩容

// 定义一个变量,用于保存实际存放元素的个数

int size = 10;

// 如果数组的空间长度等于实际存放元素的个数,则执行扩容操作
if (arr.length == size) {
   // 创建一个更大的数组

     int[] newArr = new int[arr.length + 1];

     // 把原数组中的数据,复制给新创建的数组

     **for** (**int** i = 0; i < arr.length; i++) {

     newArr[i] = arr[i];// 拷贝操作

     }

     // 让arr指向堆里面的newArr数组

     arr = newArr;
}

// 第三步:插入索引位置之后的元素往后移动一位

for (int i = arr.length - 2; i >= 2; i--) {

arr[i + 1] = arr[i];

}

// 第四步:给index索引位置赋值

arr[index] = value;

// 返回插入元素成功的数组

return arr;

}

Original: https://www.cnblogs.com/GeniusWang/p/16601443.html
Author: Genius_Wang
Title: 数组常见操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583120/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux NTP服务配置

    bash;gutter:true; 外部ntp服务器地址:0.cn.pool.ntp.org 内部ntp服务器地址1:192.168.57.200 内部ntp服务器地址2:192….

    Linux 2023年6月13日
    049
  • 【论文笔记】(2015,JSMA)The Limitations of Deep Learning in Adversarial Settings

    本文是早期的对抗文章,发表于 EuroS&P 2016会议,最主要的工作是:提出了一个生成对抗样本的算法– JSMA(Jacobian Saliency Map…

    Linux 2023年6月7日
    087
  • Redis中bitmap的妙用

    bitmap的使用场景使用场景一:用户签到使用场景二:统计活跃用户使用场景三:用户在线状态 Original: https://www.cnblogs.com/linjiqin/p…

    Linux 2023年5月28日
    095
  • Mac下安装zshell

    什么是shell 大多数命令行用户接触最多的是Bash,因为Bash是各个版本操作系统(Linux&Mac)的默认shell。 查看当前使用的shell $ echo $S…

    Linux 2023年5月28日
    082
  • IIC挂死问题解决过程

    猜测1:认为IIC device程序有问题 检查1:查看程序发现有可能溢出的部分,使用IIC 工具刷过量数据到slave,未出问题。 猜测2:认为IIC device寄存器进入异常…

    Linux 2023年6月6日
    0107
  • 设计模式——创建型设计模式

    创建型设计模式 争对 &#x5BF9;&#x8C61;/&#x7C7B;创建时的优化 工厂方法模式(了解) 通过定义顶层抽象工厂类,通过继承的方式,针对于每…

    Linux 2023年6月7日
    091
  • 高速USB转4串口产品设计-TTL串口

    基于480Mbps 高速USB转8路串口芯片CH344Q,可以为各类主机扩展出4个独立的串口。CH344芯片支持使用操作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动…

    Linux 2023年6月7日
    0104
  • exec

    exec 函数 exec()函数通过运行其他程序来替换当前进程。 新程序启动后PID和老程序一样,就像两个程序接力跑,你的程序把进程交接给了新程序。 exec函数众多,可以分为两种…

    Linux 2023年6月7日
    094
  • rocketmq高可用集群部署(RocketMQ-on-DLedger Group)

    编辑broker的配置文件 第一台主机node0的配置(192.168.0.218): vim ./conf/dledger/broker-n0.conf 内容如下: broker…

    Linux 2023年6月8日
    093
  • phpcms安装

    【快速安装开始】 下载解压phpcms,复制安装文件到站点目录”/opt/html”里,给予权限(官网无法访问了,所以下载地址需自行寻找上传) cd /us…

    Linux 2023年6月6日
    068
  • Quartus II 13.0 sp1的官方下载页面

    今天为了下个ModelSim跑到网上去找下载资源,清一色的百度网盘,下载速度60k/s,简直有病,于是跑到Intel官网上把连接挖出来了,供各位直接下载 实测使用IDM多线程下载速…

    Linux 2023年6月13日
    0169
  • 最新版Linux以root登陆后,无声音、桌面无图标的原因分析

    近两年几乎所有的Linux发行版,以root登陆后无声音、桌面无图标。 声音好处理,这是因为声音服务程序因为安全问题, 不推荐在Root环境下运行; 且本身Linux并不推荐在Ro…

    Linux 2023年6月14日
    0153
  • ssh remote forward 监听 0.0.0.0 端口;How to make SSH remote port forward that listens 0.0.0.0

    今天使用ssh转发内网服务的时候,发现remote forward 转发到远程,监听的端口都是localhost。 之前还没发现这种情况,因为都是在所转发的目的主机使用服务。今天,…

    Linux 2023年5月27日
    098
  • 【FTK Imager篇】FTK Imager磁盘镜像的哈希报告翻译

    FTK Imager制作完镜像后,会生成镜像文件和哈希报告,来验证镜像文件的哈希值和驱动器哈希值在创建镜像后是否匹配,以用作基准来证明案例证据的完整性。—【suy】 磁…

    Linux 2023年6月13日
    077
  • Redis连接出现Error: Connection reset by peer的问题是由于使用Redis的安全模式

    现在网上一查出现安全模式的连接,基本都是要关闭服务端的操作,其实这种方式是不正确的,最有效的解决方式是使用stunnel进行安全模式的连接。 我碰到的问题是微软云(其实我不想用!)…

    Linux 2023年5月28日
    093
  • Golang中通过go-redis操作Redis

    参考地址:https://github.com/go-redis/redis 定义上下文以及连接的相关信息 var ctx = context.Background() var r…

    Linux 2023年5月28日
    090
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球