冒泡排序法与Arrays工具类

Arrays工具类的常用方法

  • 填充数组Arrays.fill();
int[] arr = new int[5];//新建一个大小为5的数组
Arrays.fill(arr,4);//给所有值赋值4
String str = Arrays.toString(arr); // Arrays类的toString()方法能将数组中的内容全部打印出来
System.out.print(str);
//输出:[4, 4, 4, 4, 4]
int[] arr = new int[5];//新建一个大小为5的数组
Arrays.fill(arr, 2,4,6);//给第2位(0开始)到第4位(不包括)赋值6
String str = Arrays.toString(arr); // Arrays类的toString()方法能将数组中的内容全部打印出来
System.out.print(str);
//输出:[0, 0, 6, 6, 0]
  • Arrays.sort();数组排序
  1. 数字排序
    int[] intArray = new int[] { 4, 1, 3, -23 };
    Arrays.sort(intArray);
    //输出: [-23, 1, 3, 4]

  1. 字符串排序,先大写后小写
    String[] strArray = new String[] { “z”, “a”, “C” };
    Arrays.sort(strArray);
    //输出: [C, a, z]

  1. 严格按照自摸表顺序排序,也就是忽略大小写Case-insensitive sort
    Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
    //输出: [a, C, z]

  1. 反向排序,Reverse-order sort
    Arrays.sort(strArray, Collections.reverseOrder());
    //输出:[z, a, C]

  1. 忽略大小写反向排序Case-insensitive reverse-order sort
    Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
    Collections.reverse(Arrays.asList(strArray));
    //输出: [z, C, a]

  1. 选择数组指定位置进行排序
    int[] arr = {3,2,1,5,4};
    Arrays.sort(arr,0,3);//给第0位(0开始)到第3位(不包括)排序
    String str = Arrays.toString(arr); // Arrays类的toString()方法能将数组中的内容全部打印出来
    System.out.print(str);
    //输出:[1, 2, 3, 5, 4]

  • Arrays.toString();将数组中的内容全部打印出来
    int[] arr = {3,2,1,5,4};
    System.out.print(arr);//直接将数组打印输出
    //输出:[I@7852e922 (数组的地址)

	String str = Arrays.toString(arr); // Arrays类的toString()方法能将数组中的内容全部打印出来
	//System.out.print(str);
	//输出:[3, 2, 1, 5, 4]

  • Arrays.equals();比较数组元素是否相等
	int[] arr1 = {1,2,3};
	int[] arr2 = {1,2,3};
	System.out.println(Arrays.equals(arr1,arr2));
	//输出:true
	//如果是arr1.equals(arr2),则返回false,因为equals比较的是两个对象的地址,不是里面的数,而Arrays.equals重写了equals,所以,这里能比较元素是否相等。

冒泡排序法

基本代码:

public class Test_02 {
    public static void main(String[] args) {
        int [] c ={1,65,8746,798,41,31,46,3};//定义一个数组
        int [] d =array(c);//把套用写好冒泡算法得出来的数组赋值给数组d
        System.out.println(Arrays.toString(d));//输出数组
    }
    public static int [] array(int []array){
        int temp = 0;//定义一个临时变量
        for (int i = 0; i <array.length-1 ; i++) {//变量i定义循环次数
            for (int j = 0; j <array.length-1-i ; j++) {//变量j定义数组下标
                if (array[j]>array[j+1]){//如果传进来的数小下标代表的数值大于传进来的数的大下标
                    temp=array[j];//把小下标数代表的值赋给临时变量temp
                    array[j]=array[j+1];//把大下标代表的值赋给小下标代表的值
                    array[j+1]=temp;//把空变量里代表的值赋给大下标代表的值
                }
            }
        }
        return array;
    }
}
posted @   萧何i  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示