**练习1.随机生成一个整数型数组(1-10数组长度随机,0-50数组元素随机)
在其数组的最后追加一个1-50随机数值**
public class ArrayInsert1{
public static void main(String[] args){
int[] arr=genArray();
printArray(arr);
int value=(int)(Math.random()*50+1);
System.out.println("随机输入的一个数值是:"+value);
int[] res=insertArray(arr,value);
printArray(res);
}
//随机生成一个数组(数组长度在1-10之间,数组元素在0-50之间)
public static int[] genArray(){
int line=(int)(Math.random()*10+1);
int[] arr=new int[line];
for(int i=0;iint r=(int)(Math.random()*51);
arr[i]=r;
}
return arr;
}
//打印数组
public static void printArray(int[] arr){
for(int i=0;iout.print(arr[i]+" ");
}
System.out.println();
}
//生成一个新的数组,新数组中最后一位包含追加的随机数值
public static int[] insertArray(int[] arr, int value){
int[] res=new int[arr.length+1];
int index=0;
for(int i=0;i1]=value;
return res;
}
}
**练习2.键盘输入一个整数型数组(数组长度和数组元素都是键盘输入)
在数组中任意位置上插入一个从键盘上录入的数值,打印出
插入指定数值后的新数组**
import java.util.Scanner;
public class ArrayInsert2{
public static void main(String[] args){
int[] arr=genArray();
printArray(arr);
Scanner s=new Scanner(System.in);
System.out.print("请您输入一个所需要插入的数值:");
int value=s.nextInt();
System.out.print("请您输入所需要插入的位置索引值:");
int position=s.nextInt();
int[] res=arrayAnyInsert(arr,position,value);
if(res != null){
printArray(res);
}else{
System.out.println("位置非法");
}
}
public static int[] genArray(){
Scanner s=new Scanner(System.in);
System.out.print("请您输入所需要的数组元素长度:");
int line=s.nextInt();
int[] arr=new int[line];
for(int i=0;iout.print("请您输入所需要的数组元素:");
int r=s.nextInt();
arr[i]=r;
}
return arr;
}
public static int[] arrayAnyInsert(int[] arr,int position,int value){
int[] res=new int[arr.length+1];
if(position<0 || position>res.length){
return null;
}
for(int i=0;iif(ielse if(i==position){
res[i]=value;
}else{
res[i]=arr[i-1];
}
}
return res;
}
public static void printArray(int[] arr){
for(int i=0;iout.print(arr[i]+" ");
}
System.out.println();
}
}
练习3.删除int型数组指定位置的元素
public class ArrayDelAnyPosition{
public static void main(String[] args){
int[] arr = {1,2,3,4,5,5,5,5};
int position = 10;
int[] res = delAnyPosition(arr,position);
if(res != null){
print(res);
}else{
System.out.println("位置非法");
}
}
public static int[] delAnyPosition(int[] arr,int position){
//判断是否合法
if(position >= arr.length || position < 0){
return null;
}
int[] res = new int[arr.length - 1];
for(int i = 0;iif(i < position){
res[i] = arr[i];
}else{
res[i] = arr[i + 1];
}
}
return res;
}
public static void print(int[] arr){
for(int i = 0;iout.print(arr[i] + " ");
}
System.out.println();
}
}
练习4.删除元素:包含多个要删除的元素,都删除
public class ArrayDelElementDemo{
public static void main(String[] args){
int[] arr = {1,2,2,1,3,5,5};
int value = 50;
print(delElement(arr,value));
}
//删除指定的元素
public static int[] delElement(int[] arr,int value){
//判断数组中是否包含指定值
if(!isExist(arr,value)){
return arr;
}
//统计有多少个要删除的元素
int count = 0;
for(int i = 0;iif(arr[i] == value){
count++;
}
}
//创建新数组
int[] res = new int[arr.length - count];
//遍历原数组,把不等于value的值赋值给res
int index = 0;
for(int i = 0;iif(arr[i] != value){
res[index++] = arr[i];
}
}
return res;
}
//判断数组中是否包含指定值
public static boolean isExist(int[] arr,int value){
for(int i = 0;iif(arr[i] == value){
return true;
}
}
return false;
}
public static void print(int[] arr){
for(int i = 0;iout.print(arr[i] + " ");
}
System.out.println();
}
}
/*
数组的反转(逆数组)
*/
package oldboy;
public class ArrayDemo_2 {
public static void main(String[] args) {
int[] arr={1,2,3,4,5};
System.out.println("反转之前,数组是:");
print(arr);
System.out.println("反转之后,数组是:");
inverseArray(arr);
print(arr);
}
public static void inverseArray(int[] arr){
//计算交换次数
int n=arr.length/2;
//将数组中的两个元素进行交换
for (int i = 0; i < n; i++) {
int temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
}
public static void print(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
System.out.println();
}
}
运行结果是:反转之前,数组是:
12345
反转之后,数组是:
54321