大数据基础之java常用API二(数组元素排序,冒泡排序、Arrays类,包装类,Date类)


在这里插入图片描述

1. 数组元素排序

1. 1 冒泡排序

图解在这里插入图片描述

代码演示

public static void main(String[] args) {
    int[] arr = {25, 69, 80, 57, 13};

    // 遍历数组
    int count = 0;
    // 外层循环中arr.length-1 就是告诉我们如果五个数字已经确定了4个最后一轮不用比
    for (int i = 0; i < arr.length - 1; i++) {
        // 内层循环中arr.length - 1,防止和j+1进行比较时数组越界
        // 内层循环中arr.length - i, 已经比较到最大值的数据没有必要再次比较
        for (int j = 0; j < arr.length - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
            count++;
        }
    }

    // 打印结果
    System.out.println(Arrays.toString(arr));
    System.out.println(count);
}

1.2 Arrays

• 已知数组int[] arr = {25, 69, 80, 57, 13}.
• 通过Arrays#sort()方法, 对其升序排列.
• 打印排序后的结果.

Arrays 是一个工具类:
工具类的特点:
1.构造方法私有
2.都是静态成员方法

toString: 将数组转换为字符串
sort: 排序 默认升序

public class Demo01 {
    public static void main(String[] args) {
        // 创建数组
        int[] arr = {25, 69, 80, 57, 13};
        // 使用sort进行排序
        Arrays.sort(arr);
        // 使用tostring打印数组中的内容
        System.out.println(Arrays.toString(arr)); // [13, 25, 57, 69, 80]
    }
}

2. 包装类

2.1 基本类型–>包装类

1.byteByte
2.shortShort
3.intInteger
4.longLong
5.charCharacter
6.flatFloat
7.doubleDouble
8.booleanBoolean

包装类: 就是基础数据类型包装成一个引用类型的class
基础数据类型没有对应的属性和方法,但是我们有很多常用的方法或者功能需要调用,并且最好可以使用.语法调用

所以我们就需要将基础数据类型转换为引用类型,方便我们的开发工作,此时就出现了包装类

包装类中有一些常用的方法 我们以Integer为例

构造方法:
public Integer(int a);
public Ingeter(String s);

静态变量:
MAX_VALUE
MIN_VALUE
SIZE
TYPE

成员方法:
toString: 重写了object中的tostring 输出的是对象的内容
equals: 重写了Object中的方法,对比两个对象中的值是否相等,而不是对比地址
parseInt: 将字符串类型数据转换为int类型数据的方法,在之前用过
所有的包装类,除了Character 都有parse方法
parseFloat
parseDouble
parseBoolean

3. 自动拆装箱

自动拆装箱:
在这里我们把基础数据类型转换为引用类型的方式比喻为装到箱子里,叫做装箱
我们把引用类型转换为基础数据类型,比喻成从箱子里拆除来,叫做拆箱

public class Demo02 {
    public static void main(String[] args) {
        // 我们以Integer为例进行拆装箱演示
        // 装箱:
        Integer i1 = new Integer(12);
        // 自动装箱:
        Integer i2 = 12;

        // 拆箱
        int int1 = i1.intValue();
        // 自动拆箱
        int int2 = i1;

        System.out.println(i1);
        System.out.println(i2);
        System.out.println(int1);
        System.out.println(int2);

        // 在jdk 1.5之后出现了自动拆装箱. 在这之前都是使用手动拆装箱的方式完成的.
    }
}

练习:

/*
需求
•  已知字符串String s = "91 27 45 38 50";
•  请通过代码实现最终输出结果是: "27, 38, 45, 50, 91"

思路:
1. 定义字符串s
2. 将字符串进行切割 ,按照空格拆分
    增加内容:
    1.将拆分后的数组中的字符串转斗转换为int类型的数据
    2.对数组进行排序
3. 将拆分后的数字转换为字符串类型
4. 删除收尾的[]

 */
public class Demo03 {
    public static void main(String[] args) {
        // 1. 定义字符串s
        String s = "91 27 45 38 50";
        // 2. 将字符串进行切割 ,按照空格拆分
        String[] sArray = s.split(" ");
        //增加内容
        //定义了一个空的数组,指定长度为5
        int[] arr = new int[sArray.length];
        for (int i = 0; i < sArray.length; i++) {
            // 将sArray中的字符串数字,转换为int类型传入arr中的相应位置
            arr[i] = Integer.parseInt(sArray[i]);
        }
        Arrays.sort(arr);
        // 3. 将拆分后的数字转换为字符串类型
        String sString = Arrays.toString(arr);
        // 4. 删除收尾的[]
        //方法一:
//        String result = sString.replace("[", "\"").replace("]", "\"");
        //方法二:
        String result = sString.substring(1, sString.length() - 1);
        // 打印结果
        System.out.println(result);

    }
}

3. Date类

  1. 构造方法

  2. 成员方法

    1. getTime
    2. setTime

Date:时间类:Date类型数据只能精确到毫秒 Date类现在已经被其他类取代(Calendar) 所以大部分方法已经过期 构造方法:
public Date(); 获取当前时间 public Date(long time); 成员方法: settime:
对象添加日期 gettime: 获取日期 toString: 重写了object中的 方法,打印指定格式的时间值 例如:Tue Jan
25 11:15:38 CST 2022

public class Demo01 {
    public static void main(String[] args) {
        // 创建一个Date对象
        Date d1 = new Date();
        // 打印时间数据
        System.out.println(d1); // 获取的是当前的系统时间

        // 使用date对象获取其时间的时间戳
        // 时间戳: 从1970年1月1日到指定时间的毫秒值
        System.out.println(d1.getTime()); // 1643080538673

        // 通过一个时间戳初始化一个时间对象
        Date d2 = new Date(1643080538673L);
        System.out.println(d2);

        // 通过时间戳修改当前的时间对象的值
        d1.setTime(1643080538673L);
        System.out.println(d1);


        // 在开发中不适用上述方式获取当前时间,因为不方便,不好用,不优雅
        // 1643080827419  System.currentTimeMillis()获取的是时间戳
        System.out.println(System.currentTimeMillis());

    }
}
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Java中的Arrays提供了一个sort方法,可以用来对数组进行排序。该方法可以对任何型的数组进行排序,包括基本数据型和对象型。 使用Arrays的sort方法进行数组排序非常简单,只需要将要排序数组作为参数传递给sort方法即可。例如,对一个整型数组进行排序的代码如下: int[] arr = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3}; Arrays.sort(arr); 在上面的代码中,我们定义了一个整型数组arr,并将其初始化为一个无序的数组。然后,我们调用Arrays的sort方法对该数组进行排序排序后,数组arr中的元素将按照从小到大的顺序排列。 需要注意的是,Arrays的sort方法会改变原始数组的顺序,因此在排序之前需要备份原始数组,以免数据丢失。此外,如果要对对象数组进行排序,需要保证对象实现了Comparable接口或者传递一个Comparator对象作为参数。 总之,Arrays的sort方法是Java中非常实用的一个方法,可以方便地对数组进行排序。 ### 回答2: Java是一种功能强大且广泛使用的编程语言,ArraysJava提供的一个工具,其中sort方法是该中最常用的方法之一 ,主要用于数组排序数组排序可以使数列按照一定规则进行排序,使其便于查找和使用。Arrays中的sort方法可以将数组按照从小到大或从大到小的顺序进行排序,以便于使用。使用该方法需要注意以下几点。 1. 参数形式 该方法有两个参数形式:sort(int[] array)和sort(Object[] array)。第一个参数形式适用于整型数组,且数组中的元素应全部为整型。第个参数形式适用于任意型的对象数组。使用该方法应根据实际情况选择适当的参数形式。 2. 排序顺序 sort方法默认按照升序(从小到大)的顺序排序数组。如果需要按降序(从大到小)排序,需要使用Arrays中提供的另一个重载方法sort(int[] array, int fromIndex, int toIndex, Comparator<? super Integer> c),并指定Comparator对象的方法来定义排序规则。 3. 排序性能 sort方法采用快速排序算法来进行排序,其时间复杂度为O(nlogn)。在排序大型数组时,该方法的效率较高,但在排序小型数组时,容易出现效率问题。因此,在对小型数组进行排序时,可使用Arrays中提供的另一个重载方法sort(int[] a, int fromIndex, int toIndex),该方法采用插入排序算法来进行排序,其时间复杂度为O(n^2),但在小型数组中的效率更高。 以上三点是Java数组Arrayssort方法之数组排序时需要注意的问题。在使用sort方法时,还需要根据实际情况灵活使用,以实现最佳的排序效果。 ### 回答3: java数组是一种能够存储一组具有相同数据型的元素的结构。在实际开发中,我们经常需要对数组进行排序操作,以实现更高效的数据处理。java提供了一种极其方便的数组排序方式,通过调用arrays的sort方法,可以对数组进行快速排序arraysjava.util包中的一个,主要提供了一系列与数组相关的操作方法。其中sort方法可以对数组进行排序,具体使用方法如下: ```java public static void sort(int[] a) //排序一个数组 public static void sort(int[] a, int fromIndex, int toIndex) //对一个数组的一部分进行排序 ``` 其中,第一个方法的参数是一个一维数组,该方法将会对整个数组进行排序;第个方法的参数是一个一维数组、一个起始索引和一个结束索引。通过指定数组的起始和结束索引,可以仅对数组中的一部分元素进行排序。 在使用sort方法时,需要注意的是,排序前需要保证数组已经存储了需要排序的数据。如果数组中存在null元素,sort方法将会抛出NullPointerException异常。如果元素不是可比较型,例如数组中存储了自定义的对象型,sort方法将会抛出ClassCastException异常。 sort方法使用快速排序算法实现,具有较好的时间复杂度和空间复杂度。在实际开发中,常用数组排序方式包括冒泡排序、插入排序、快速排序、归并排序等,每种排序方式都有不同的使用场景和优缺点。在使用sort方法时,需要根据实际情况选择合适的排序方式。 总之,arrays的sort方法提供了一种便捷的数组排序方式,可以大大提升java的数据处理效率。在实际应用中,我们可以根据需求和数据规模等因素,选择合适的排序方式,以实现更高效的数据处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chad__chang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值