您的位置:首页 > 编程语言 > Java开发

java基础 数组的增添改查

2015-08-30 22:41 387 查看
package com.hp.yuan;

import java.util.Arrays;

import java.util.Scanner;

public class Zsgc {

public static void main(String[] args) {
int[] num=new int[3];
Scanner sc=new Scanner(System.in);
System.out.println("请依次输入三个数:");
for (int i = 0; i < num.length; i++) {
num[i]=sc.nextInt();
}
System.out.println("请选择要操作的序号:");
System.out.println("1、删除指定位置上的数");
System.out.println("2、修改指定位置上的数");
System.out.println("3、查找某个数的位置(下标)");
System.out.println("4、查找最大值");
System.out.println("5、查找最小值");
System.out.println("6、去掉一个最大值,去掉一个最小值,求平均值");
int xuhao=sc.nextInt();
int[] c;
switch (xuhao) {
case 1:
System.out.println("请输入要删除的下标:");
int location=sc.nextInt();
c=dlnum(location,num);
System.out.println(Arrays.toString(c));
break;
case 2:
System.out.println("请依次输入要修改的位置和要替换的数:");
int location1=sc.nextInt();
int becomenum=sc.nextInt();
c=changenum(num,location1,becomenum);
System.out.println(Arrays.toString(c));
break;
case 3:
System.out.println("请输入所需要查找位置的数:");
int findnum=sc.nextInt();
int index=findlocation(num,findnum);
System.out.println(index);
break;
case 4:
maxnum(num);
break;
case 5:
minnum(num);
break;
case 6:
avgnum(num);
break;
default:
System.out.println("输入有误!");
break;
}

}

//建立方法dnum   功能:删除数组中的某个数

private static void dnum(int num,int[] a) {

int num1=num;
int index=-1;
int[] b=a;

int[] c=new int[3];
for (int i = 0; i < b.length; i++) {
if(b[i]==num1){
index=i;
System.out.println(i);
}
}
if(index==-1){
System.out.println("没有该数");
}else {
while(true){
if(index<b.length-1){
b[index]=b[index+1];
index++;
}else{
b[b.length-1]=0;
break;
}
}
System.out.println(Arrays.toString(b));
}

}

//删除指定位置上的数,location为下标,a为数组

private static int[] dlnum(int location,int[] a) {
//int numlocation=location;
int[] b=new int[a.length-1];
System.arraycopy(a, 0, b, 0, location);
System.arraycopy(a, location+1, b, location, a.length-location-1);
//System.out.println(Arrays.toString(b));
return b;

}

//修改数组指定位置上的数,becomenum是要改成的数

private static int[] changenum(int[] a,int location, int becomenum) {
int[] b=new int[a.length];
if(location>-1 && location<a.length){
if(location==a.length-1){
System.arraycopy(a, 0, b, 0, a.length-1);
b[a.length-1]=becomenum;
System.out.println(Arrays.toString(b));
}else{
System.arraycopy(a, 0, b, 0, location);
b[location]=becomenum;
//System.out.println("1"+Arrays.toString(b));
//考虑最后一个数
System.arraycopy(a, location+1, b, location+1, a.length-1-location);
//System.out.println("2"+Arrays.toString(b));
}

}else{
System.out.println("输入位置有错!");
}

return b;

}

//查找某个数的下标

private static int findlocation(int[] a,int findnum){
int index=-1;
for (int i = 0; i < a.length; i++) {
if(a[i]==findnum){
index=i;
}

}
if(index==-1){
System.out.println("没有此数!");
}
return index;

}

//查找最大值

private static void  maxnum(int[] a) {
int[] b=a;
Arrays.sort(b);
System.out.println(b[b.length-1]);

}

//查找最小值

private static void minnum(int[] a) {
int[] b=a;
Arrays.sort(b);
System.out.println(b[0]);

}

//求平均值

private static void avgnum(int[] a) {
int[] b=new int[a.length-2];
Arrays.sort(a);
System.out.println(Arrays.toString(a));
System.arraycopy(a, 1, b, 0, b.length);
System.out.println(Arrays.toString(b));
int sum=0;
for (int i = 0; i < b.length; i++) {
sum=sum+b[i];
System.out.println(sum);
}
System.out.println(sum/b.length);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: