public class ArrayUtils {
// 8.使用静态的特点定义一个工具类专门用于操作数组的, 这个工具类有以下功能
// 1)可以将整数类型的数组中的最大值找到
// 2)可以将整数类型的数组中的最小值找到
// 3)可以遍历一个整数数组;
// 4)可以求出数组中最大值的角标
// 5)可以求出数组中最小值的角标;
// 6)可以对整数类型的数组进行排序
private ArrayUtils() {
}
// 1)可以将整数类型的数组中的最大值找到
public static int getMax(int[] arr) {
int max = arr[0];// 假设第一元素是最大值
for (int i = 1; i < arr.length; i++) {
int j = arr[i];
if (j > max) {
max = j;
}
}
return max;
}
// 2)可以将整数类型的数组中的最小值找到
public static int getMin(int[] arr) {
int min = arr[0];
for (int i = 1; i < arr.length; i++) {
int j = arr[i];
if (j < min) {// 如果j比我的min还小.证明我假设错了.需要替换
min = j;
}
}
return min;
}
// 3)可以遍历一个整数数组;
public static void printArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {// [12,243,45,345];
if (i == 0) {
System.out.print("[" + arr[i]);
} else if (i == arr.length - 1) {
System.out.print("," + arr[i] + "]");
} else {
System.out.print("," + arr[i]);
}
}
}
// 4)可以求出数组中最大值的角标
public static int getMaxIndex(int[] arr) {// int [] arr ={23,3455,87,95,346}
int maxIndex = 0;// 我假设0角标就是最大值//1
for (int i = 1; i < arr.length; i++) {
int j = arr[maxIndex];// 我认为最大的元素 3455
int m = arr[i];// 87
if (m > j) {
maxIndex = i;
}
}
return maxIndex;
}
// 5)可以求出数组中最小值的角标;
public static int getMinIndex(int[] arr) {// int [] arr ={23,3455,87,95,346}
int minIndex = 0;// 我假设0角标就是最大值//1
for (int i = 1; i < arr.length; i++) {
int j = arr[minIndex];// 我认为最大的元素 3455
int m = arr[i];// 87
if (m < j) {
minIndex = i;
}
}
return minIndex;
}
// 6)可以对整数类型的数组进行排序
public static void sortArr(int[] arr) {
/*
* for (int i = 0; i < arr.length - 1; i++) { // 取出左边的 int j = arr[i];
* // 取出右边的 int k = arr[i + 1]; if (j > k) { int temp = arr[i]; arr[i] =
* arr[i + 1]; arr[i + 1] = temp;
*
* } }
*/
for (int x = 0; x < arr.length - 1; x++) {
for (int i = 0; i < arr.length - 1 - x; i++) {
// 取出左边的
int j = arr[i];
// 取出右边的
int k = arr[i + 1];
if (j > k) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
}
}