java中数组的,求最值,拆入,删除。
/**
*
* @param arr 数组
* @return 返回最大值 终止方法的作用,return之后的语句不再执行
*/
public static int getMaxElement(int[] arr) {
if(arr==null) {
System.err.println("数组为null,返回默认值-1");
return -1;
}
//max 保留最大值
int max=arr[0];
//求最大值
for(int i=0;i<arr.length;i++) {
if(max<arr[i]) {
max=arr[i];
}
}
return max;
}
/**
*
* @param arr数组
* @return 最小值
*/
public static int getMinElement(int[] arr) {
if(arr==null) {
System.err.println("数组为null,返回默认值-1");
return -1;
}
int min=arr[0];//默认。保留最小值
for(int i=1;i<arr.length;i++) {
if(min>arr[i]){
min=arr[i];
}
}
return min;
}
/**
*
* @param srcArray 原数组
* @param pos 位置 (index)
* @param value 要插入的数据
* @return 新的数组
*/
public static int[] addElement(int[] srcArray,int pos,int value) {
if(srcArray==null) {
System.err.println("数组为null,不能添加元素");
return null;
}
if(pos<0||pos>srcArray.length) {
//越界
System.err.println("下标越界,返回原数组");
return srcArray;
}
//添加
int[] newArray=new int[srcArray.length+1];
//part1
for(int i=0;i<pos;i++) {
newArray[i]=srcArray[i];
}
//part2
newArray[pos]=value;
//part 3
for(int i=pos;i<srcArray.length;i++) {
newArray[i+1]=srcArray[i];
}
return newArray;
}
/**
*
* @param srcArray 原数组
* @param index 索引:删除index位置上的元素
* @return 新的数组
*/
public static int[] deleteElement(int[] srcArray,int index) {
if(srcArray==null) {
System.err.println("元素组为null");
return null;
}
if(index<0||index>=srcArray.length) {
System.err.println("下标越界,返回原数组");
return srcArray;
}
//删除
int[] newArray=new int[srcArray.length-1];
int idx=-1;
for(int i=0;i<srcArray.length;i++) {
if(i!=index) {
newArray[++idx]=srcArray[i];
}
}
return newArray;
}
/**
*
* @param srcArray 原数组
* @param value 删除指定元素
* @return 新的数组
*/
public static int[] deleteElementByValue(int[] srcArray,int value) {
if(srcArray==null) {
System.err.println("数组不能为null");
return null;
}
//统计要删除的个数
int count=0;
for(int i=0;i<srcArray.length;i++) {
if(value==srcArray[i]) {
count++;
}
}
//新数组
int[] newArray=new int[srcArray.length-count];
//新数组的下标
int idx=-1;
for(int i=0;i<srcArray.length;i++) {
if(value!=srcArray[i]) {
newArray[++idx]=srcArray[i];
}
}
return newArray;
}
/**
*
* @param arr
* 遍历数组
*/
public static void printArray(int[] arr) {
for (int i : arr) {
System.out.print(i+"\t");
}
System.out.println();
}