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

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 大数据基础之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.| byte| Byte|
|--|--|--|
| 2.| short| Short|
| 3. |int | Integer|
| 4. |long| Long|
| 5. |char | Character|
| 6. |flat | Float|
| 7. |double| Double|
| 8.| boolean | Boolean|

包装类: 就是基础数据类型包装成一个引用类型的==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());

    }
}
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
1月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
151 57
|
5天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
19天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
53 10
|
27天前
|
存储 Java 数据挖掘
Java 8 新特性之 Stream API:函数式编程风格的数据处理范式
Java 8 引入的 Stream API 提供了一种新的数据处理方式,支持函数式编程风格,能够高效、简洁地处理集合数据,实现过滤、映射、聚合等操作。
44 6
|
27天前
|
Java API 开发者
Java中的Lambda表达式与Stream API的协同作用
在本文中,我们将探讨Java 8引入的Lambda表达式和Stream API如何改变我们处理集合和数组的方式。Lambda表达式提供了一种简洁的方法来表达代码块,而Stream API则允许我们对数据流进行高级操作,如过滤、映射和归约。通过结合使用这两种技术,我们可以以声明式的方式编写更简洁、更易于理解和维护的代码。本文将介绍Lambda表达式和Stream API的基本概念,并通过示例展示它们在实际项目中的应用。
|
1月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
54 8
|
1月前
|
安全 Java API
告别SimpleDateFormat:Java 8日期时间API的最佳实践
在Java开发中,处理日期和时间是一个基本而重要的任务。传统的`SimpleDateFormat`类因其简单易用而被广泛采用,但它存在一些潜在的问题,尤其是在多线程环境下。本文将探讨`SimpleDateFormat`的局限性,并介绍Java 8引入的新的日期时间API,以及如何使用这些新工具来避免潜在的风险。
39 5
|
1月前
|
开发框架 Java 关系型数据库
Java哪个框架适合开发API接口?
在快速发展的软件开发领域,API接口连接了不同的系统和服务。Java作为成熟的编程语言,其生态系统中出现了许多API开发框架。Magic-API因其独特优势和强大功能,成为Java开发者优选的API开发框架。本文将从核心优势、实际应用价值及未来展望等方面,深入探讨Magic-API为何值得选择。
57 2
|
29天前
|
安全 Java API
Java中的Lambda表达式与Stream API的高效结合####
探索Java编程中Lambda表达式与Stream API如何携手并进,提升数据处理效率,实现代码简洁性与功能性的双重飞跃。 ####
26 0
|
1月前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
362 7