数组生成、删去、替换、冒泡排序
1. 内容介绍
键盘生成数组,选择位置替换数组值,选择位置删去数组值,冒泡排序。
2.思路解析
使用重载、冒泡排序。
3. 代码实现
主函数
package com.xiaojian;
import com.xiaojian.util.ArrayUtil;
import java.util.Scanner;
/**
* 作业:
* 1. 替换数组:在数组指定索引处替换新值
* 2. 减数组:在数组指定索引处移除该值
* 3. 排序数组:将数组从小到大排序返回
*/
public class Work {
public static void main(String[] args) {
;
Scanner scan = new Scanner(System.in);
//生成数组
int [] arr=ArrayUtil.newArray();
while (true){
System.out.println("请选择 0 打印数组 1选择替换数组 2选择减去数组 3数组排序 4退出");
//请选择 0 打印数组 1选择替换数组 2选择减去数组 3数组排序
int flag = scan.nextInt();
if (flag==0){
//打印数组
System.out.println("-----打印数组-----");
ArrayUtil.printArray(arr);
System.out.println("请选择接下来的操作,请选择 0 打印数组 1选择替换数组 2选择减去数组 3数组排序 4退出");
flag = scan.nextInt();
}
if (flag==1){
//替换数组
System.out.println("-----替换数组-----");
System.out.print("请输入替换数序号:");
int index = scan.nextInt();
System.out.print("请输入替换后的值:");
int goal = scan.nextInt();
int[] outcome = ArrayUtil.newArray(arr ,index,goal);
ArrayUtil.printArray(arr);
System.out.println("请选择接下来的操作,请选择 0 打印数组 1选择替换数组 2选择减去数组 3数组排序 4退出");
flag = scan.nextInt();
}
if (flag==2){
System.out.println("-----减去数组-----");
//减去数组
System.out.print("请输入减去数序号:");
int index = scan.nextInt();
arr = ArrayUtil.newArray(arr , index);
ArrayUtil.printArray(arr);
System.out.println("请选择接下来的操作,请选择 0 打印数组 1选择替换数组 2选择减去数组 3数组排序 4退出");
flag = scan.nextInt();
}
if (flag==3){
System.out.println("-----冒泡排序从小到大-----");
ArrayUtil.printArray(ArrayUtil.sort1Array(arr ));
//冒泡排序
System.out.println("-----冒泡排序从大到小-----");
ArrayUtil.printArray(ArrayUtil.sort2Array(arr ));
System.out.println("请选择接下来的操作,请选择 0 打印数组 1选择替换数组 2选择减去数组 3数组排序 4退出");
flag = scan.nextInt();
}
if (flag==4){
break;
}
}
}
}
方法
package com.xiaojian.util;
import java.util.Scanner;
public class ArrayUtil {
public static int[] newArray() {
Scanner scan = new Scanner(System.in);
System.out.print("请输出生成几位数组:");
int num = scan.nextInt();
int[] arr = new int[num];
System.out.print("请输入数组值并以空格隔开:");
for (int i = 0;i < num; i++){
arr[i]= scan.nextInt();
}
return arr;
}
/**
* 打印数组
* @param arr
*/
public static void printArray(int[] arr) {
String arrStr = "[";
for (int i = 0;i<arr.length;i++){
if (i != arr.length-1){
arrStr += arr[i] + ",";
}else {
arrStr += arr[i] + "]";
}
}
System.out.println(arrStr);
}
/**
* 替换数组:在数组指定索引处替换新值
* @param arr
* @param index
* @param goal
* @return
*/
public static int[] newArray(int[] arr, int index, int goal){
arr[index]=goal;
return arr;
}
/**
* 减数组:在数组指定索引处移除该值
* @param arr
* @param index
* @return
*/
public static int[] newArray(int[] arr, int index){
int[] temp = new int[arr.length-1];
for (int i =0,x=0;x<arr.length-1;x++,i++){
if (index==i){
i++;
temp[index]=arr[i];
i++;
x++;
}
temp[x]=arr[i];
}
return temp;
}
//排序数组:将数组从小到大排序返回
/**
* 冒泡排序
* @param arr
* @return
*/
public static int[] sort1Array(int[] arr){
for (int x=arr.length;x>1;x--){
for (int i=0;i<x-1;i++){
if (arr[i]>arr[i+1]){
int a = arr[i];
arr[i] = arr[i+1];
arr[i+1]=a;
}
}
}
return arr;
}
/**
* 冒泡排序
* @param arr
* @return
*/
public static int[] sort2Array(int[] arr){
for (int x=arr.length;x>1;x--){
for (int i=0;i<x-1;i++){
if (arr[i]<arr[i+1]){
int a = arr[i];
arr[i] = arr[i+1];
arr[i+1]=a;
}
}
}
return arr;
}
}