JAVA学习13---Arrays类、冒泡排序与稀疏数组的简单实现

Arrays类

  • 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作
  • Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而不使用对象来调用
  • 具有以下功能:数组赋值(fill方法)、数组排序(sort方法升序)、数组比较(equals方法)、数组查找(binarySearch方法)等
    JAVA-arrays类文档

冒泡排序

  • 总共有八大排序
  • 冒泡排序相对简单,外层冒泡轮数,内层依次比较
  • 时间复杂度为O(n**2)

代码实现:

import java.util.Arrays;

public  class  demo{
    public static void main(String[] args) {
        int[] a={5,4,3,2,1};
        System.out.println(Arrays.toString(sor(a)));
    }
    public static int[] sor(int[] array){
        int temp;
        for (int i=0;i< array.length-1;i++){
            for (int j=0;j< array.length-1-i;j++){
                if(array[j]>array[j+1]){
                    temp =array[j];
                    array[j] =array[j+1];
                    array[j+1] =temp;
                }
            }
        }
        return array;

    }
}

稀疏数组

  • 当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组
  • 稀疏数组是把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模

代码实现:

public  class  demo{
    public static void main(String[] args) {
        int[][] array1 = new int[10][10];
        array1[0][0] = 1;
        array1[4][4] = 2;
        array1[9][9] = 3;
        System.out.println("原始数组:");
        for (int[] ints : array1) {
            for (int anInt : ints) {
                System.out.print(anInt + "\t");
            }
            System.out.println();
        }
        int sum=0;
        for (int i=0;i< array1.length;i++) {
            for (int j = 0; j < array1[i].length; j++) {
                if (array1[i][j] != 0)
                    sum++;
            }
        }

            System.out.println("有效值个数为:" + sum);
            int[][] array2 = new int[sum + 1][3];
            array2[0][0] = array1.length;
            array2[0][1] = array1[0].length;
            array2[0][2] = sum;

            int count = 0;
            for (int i = 0; i < array1.length; i++) {
                for (int j = 0; j < array1[i].length; j++) {
                    if (array1[i][j] != 0) {
                        count++;
                        array2[count][0] = i;
                        array2[count][1] = j;
                        array2[count][2] = array1[i][j];
                    }
                }
            }
            System.out.println("稀疏数组:");
            for (int[] value : array2) {
                System.out.println(value[0] + "\t" + value[1] + "\t" + value[2] + "\t");
            }
            System.out.println("还原:");
            int[][] array3 = new int [array2[0][0]][array2[0][1]];
            for(int i=1;i< array2.length;i++){
                array3[array2[i][0]][array2[i][1]]=array2[i][2];
            }
            for (int[] ints:array1){
                for(int anInt :ints){
                    System.out.print(anInt+"\t");
                }
                System.out.println();
        }
        }

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java中的Arrays类提供了许多操作数组的方法,其中包括对数组进行排序的方法。使用Arrays.sort()方法可以对数组进行排序,该方法可以对任何类型的数组进行排序,包括基本类型和对象类型。 例如,对一个整型数组进行排序,可以使用以下代码: int[] arr = {5, 2, 8, 1, 9}; Arrays.sort(arr); 排序后,数组arr的值为{1, 2, 5, 8, 9}。 如果要对一个字符串数组进行排序,可以使用以下代码: String[] arr = {"apple", "banana", "orange", "pear"}; Arrays.sort(arr); 排序后,数组arr的值为{"apple", "banana", "orange", "pear"}。 需要注意的是,Arrays.sort()方法会改变原始数组的顺序,如果需要保留原始数组的顺序,可以先将数组复制一份再进行排序。 ### 回答2: Java数组是一种很常见的数据类型,在实际开发中使用频率也很高。在Java中,对于数组的操作一般使用Arrays类来完成,该类提供了很多实用的方法,比如数组排序等。 数组排序是对数组中的元素进行排序的过程,可以按照升序或者降序排列。Java中使用Arrays类提供的sort方法对数组进行排序,方法的原型如下: public static void sort(数组名); 其中,数组名代表需要排序数组。如果数组中的元素为基本数据类型(如int、double等),则默认按照升序排列;如果数组中的元素为字符串类型,则按照字典序升序排列。 下面是一个示例代码,演示如何使用Arrays类对数组进行排序: ``` import java.util.Arrays; public class ArraySortDemo { public static void main(String[] args) { int[] nums = {3, 7, 1, 9, 5}; System.out.println("排序前:" + Arrays.toString(nums)); Arrays.sort(nums); System.out.println("排序后:" + Arrays.toString(nums)); } } ``` 代码执行结果如下: ``` 排序前:[3, 7, 1, 9, 5] 排序后:[1, 3, 5, 7, 9] ``` 可以看到,排序前的数组为3、7、1、9、5,排序后的数组为1、3、5、7、9,按照升序排列。 除了按照升序排列之外,还可以按照降序排列。可以使用Arrays类的sort方法,同时指定排序算法和排序方式,如下所示: ``` import java.util.Arrays; import java.util.Collections; public class ArraySortDemo { public static void main(String[] args) { Integer[] nums = {3, 7, 1, 9, 5}; System.out.println("排序前:" + Arrays.toString(nums)); Arrays.sort(nums, Collections.reverseOrder()); System.out.println("排序后:" + Arrays.toString(nums)); } } ``` 代码执行结果如下: ``` 排序前:[3, 7, 1, 9, 5] 排序后:[9, 7, 5, 3, 1] ``` 可以看到,本次使用了Collections类提供的reverseOrder方法,将排序方式指定为降序。 综上所述,通过Arrays类提供的sort方法,我们可以很轻松地对数组进行排序。但是需要注意的是,如果数组中的元素为自定义类型,需要在自定义类型中实现Comparable接口或者Comparator接口,并重写compareTo方法或compare方法,才能实现数组排序。 ### 回答3: Java中自带了一个Arrays类,其中包含了对数组排序的方法。Arrays类中的sort()方法可以以升序或降序的形式对数组进行排序。下面就介绍一下如何使用sort()方法对数组进行排序。 首先,我们创建一个数组,然后使用sort()方法对其进行排序。 ``` int[] arr = {10, 5, 8, 20, 13}; Arrays.sort(arr); ``` 上面的代码会将数组arr按照从小到大的顺序进行排序。我们可以输出一下排序后的结果。 ``` for (int i : arr) { System.out.print(i + " "); } ``` 运行上面的代码可以看到输出结果为:5 8 10 13 20。 除了按照从小到大的顺序排序外,sort()方法还可以按照从大到小的顺序对数组进行排序。我们只需要添加一个比较器即可。 ``` int[] arr2 = {10, 5, 8, 20, 13}; Arrays.sort(arr2, Collections.reverseOrder()); ``` 上面的代码会将数组arr2按照从大到小的顺序进行排序。我们同样输出一下排序后的结果。 ``` for (int i : arr2) { System.out.print(i + " "); } ``` 运行上面的代码可以看到输出结果为:20 13 10 8 5。 除了对int类型的数组进行排序,sort()方法也支持对其他类型的数组进行排序,比如String、Double等。 总的来说,使用Arrays类中的sort()方法可以非常方便地对数组进行排序,提高我们的开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值