数组常见操作

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)

大家都在看

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