首页 > 其他分享 >数组常见操作

数组常见操作

时间:2022-08-19 11:33:37浏览次数:40  
标签:index arr 元素 int 常见 length 数组 操作

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;

}
	 -  **通过值获取索引**
```java
public static int search(int[] arr, int value) {

// 遍历数组,把数组中的元素依次和value作比较

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

// 取出元素值和value作比较

if(arr[i] == value) {

return i; // 找到相同的元素,返回索引位置

}

}

// 未找到,则返回-1

return -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;

}

标签:index,arr,元素,int,常见,length,数组,操作
From: https://www.cnblogs.com/GeniusWang/p/16601443.html

相关文章

  • Centos7操作系统Tomcat启动慢的问题
    现象在一次CentOS7系统中安装Tomcat,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是Session引起的随机数问题导致的。Tocmat的SessionID是通过SHA1算法计算得到的,......
  • php对很大的二维数组做去重和求差集操作:array_filter太慢,array_map配合array_diff速度
    需求:长度大约10万级别的二维数组,元素内数组长度10个左右(其实就是一个数据表的结果集合),根据指定字段对数据进行去重,最后要得到去重后被丢弃的数据明细。 两个关键过程:......
  • Linux操作系统学习
    Linux一切皆文件,最高权限的账户root。1、开机登录开机会启动很多进程,在Windows上叫“服务”(service),在Linux上叫做“守护进程”(daemon)登录方式:命令行登录ssh登录......
  • 河北稳控科技常用的振弦传感器分类及无线振弦采集仪的常见问题
    河北稳控科技常用的振弦传感器分类及无线振弦采集仪的常见问题一.振弦传感器分类振动传感器的种类丰富,按照工作原理的不同,能分为电涡流式振动传感器、电感式振动传感器、......
  • leetcode数组题目
    1.两数之和1.1题目描述给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种......
  • 1.1、操作系统的基本概念
    操作系统的基本概念操作系统的概念指控制和管理整个计算机系统的硬件与软件资源合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的......
  • 数组
    数组数组的定义是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后顺序排列组合而成。其中,每一个数据称为一个数组的元素,每个数组元素可以通......
  • 求两个数组的相同元素
    1a=#(1,2,3,4)2b=#(1,2,4,5,6,3)3c=#(9,2,3,7,5,6,4)4d=#(1,2,3,4,8)56fngetsamearr=7(ref=arr[1]8fori=1toarr.count-1do(9......
  • c语言中使用冒泡排序法对数组进行排序
     001、#include<stdio.h>#defineNUMBER5voidpsort(intx[],intn){inti,j;for(i=0;i<n-1;i++)......
  • 转录相关signalling pathway活性打分 | 常见打分系统
     历史分析:pathway是一个不得不研究的主体,比如我们的paper就给很多GOpathway的基因打分了,很简单就是一个求均值。关于complex的活性打分,就得使用几何平均,因为缺失任何......