数组常见操作

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;

}

posted on 2022-08-19 11:28  Arya32f  阅读(24)  评论(0编辑  收藏  举报

导航