数组相关方法使用
上完数组这一章,有点兴趣,于是自己做了一个简单的数组方法的使用。
import java.util.Arrays;
import java.util.Scanner;
public class demoArrays {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
String key="y";
while(key.equals("y")){
System.out.println("请输入数组总大小");
int n = scanner.nextInt();
int[] array =new int[n];
if(n==0){
System.out.println("数组大小不能为0");
System.out.println("------------------------------------");
continue;
}
int[] a = fill(array);
System.out.println("数组将被系统随机赋值,数组如下:"+"\n"+Arrays.toString(a));
int[] sort = sort(a);
System.out.println("数组将被系统按升序排列,数组如下:"+"\n"+Arrays.toString(sort));
System.out.println("是否继续计算?(输入y继续,其他任意键退出)");
key = scanner.next();
}
System.out.println("感谢本次使用!");
scanner.close();
}
public static int[] fill(int[] array){ //自己写一个fill()方法,从0开始使用随机数来填充数组
for (int i = 0; i < array.length - 1; i++) {
array[i] = (int) (Math.random() * 1000 );
}
return array;
}
public static int[] sort(int[] array){ //升序版的冒泡排序
int temp;
for (int i = 0; i <array.length-1 ; i++) {
boolean flag = false; //添加一个flag标志,来优化排序
for (int j = 0; j <array.length-i-1 ; j++) {
if(array[j]>array[j+1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
flag = true;
}
}
if(flag == false){
break;
}
}
return array;
}
}
有以下几点需要补充说明
-
Arrays数组中有前辈们写的基础方法,比如fill(),toString()等等函数方法。此处是为检验上课是否听懂才自己拓展编写的方法。
-
我们有八种重要的排序算法,此处只提到冒泡排序,若是需要了解其他排序方法,可以借鉴其他博主的文章,在这里推荐一个大佬八种排序算法网址链接:https://chenssy.blog.csdn.net/article/details/89716562?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs&dist_request_id=1332041.921.16191847219227311&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs