数组运用
一、题目
1. 写一个类,在其中定义一些方法,实现数组元素的遍历、排序、插入、删除、查
找。
2. 将一个数组中的元素倒排过来,不能新开一个数组的临时存储空间,只能在原数
组上改。
3. 实现在一个数组指定位置添加元素和删除元素的功能。
提示:解答该题需要考虑如下问题。
① 添加元素后超过数组容量时数组的扩展容量问题。
② 添加元素前后数组中元素的变化。
③ 删除元素前后数组中元素的变化
二、程序编写
1.
public class ArrayTest {
public static void main(String[] args){
int[] a = {10,2,-5,54,110,32};
int[] b = {115,-6,75,27,6,225,94,32,-15,2222,0};
//调用处理数组的方法
print(a);
}
//遍历数组元素的方法
public static void print(int[] a){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+"");
}
System.out.println();
}
//对数组元素进行排序的方法
public int[] sort(int[] a){
for(int i=0;i<a.length-1;i++){
for(int j=i+1;j<a.length;j++){
if(a[i]<a[j]){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
return a;
}
//找出数组中值最大的元素
public int maxValue(int[] a){
int temp=a[0];
for(int i=1;i<a.length;i++){
if(temp<a[i])
temp=a[i];
}
return temp;
}
//求数组元素的和
public int sum(int[] a){
int sum=0;
for(int i=0;i<a.length;i++){
sum+=a[i];
}
return sum;
}
//将数组中的元素逆序排列
public int[] reverse(int[] a){
for(int i=0;i<a.length/2;i++){
int temp=a[i];
a[i]=a[a.length-i-1];
a[a.length-i-1]=temp;
}
return a;
}
}
2.建ArrayReverse类
public class ArrayReverse {
public int[] reverse(int[] a){
int len=a.length;
for(int i=0;i<len/2;i++){
int temp=a[i];
a[i]=a[len-i-1];
a[len-i-1]=temp;
}
return a;
}
public static void main(String[] args){
ArrayReverse ar=new ArrayReverse();
int[] a={9,2,3,4,5,6,11,8,7,15};
ar.reverse(a);
for(int i=0;i<a.length;i++){
System.out.print(a[i]+"");
}
}
}
3.ArrayInsertDel类
public class ArrayInsertDel{
int[] arr={16,21,19,36,25,100};
int count=6;
public void insert(int pos,int num){
if(arr.length==count){
expand();
}
for(int i=count;i>pos;i--){
arr[i]=arr[i-1];
}
arr[pos]=num;
count++;
}
public void delete(int pos){
count--;
for(int i=pos;i<=count;i++){
arr[i]=arr[i+1];
}
}
public void print(){
System.out.print("[");
for(int i=0;i<count;i++){
System.out.print(arr[i]+" ");
}
System.out.println("]");
}
public void expand(){
int[] arr2=new int[arr.length*2];
System.arraycopy(arr,0,arr2,0,arr.length);
arr=arr2;
}
public static void main(String[] args){
ArrayInsertDel aid=new ArrayInsertDel();
aid.print();
aid.insert(4,150);
aid.insert(6,200);
aid.print();
aid.delete(2);
aid.print();
}
}
不同版本IDE编译器会有差异。