首页 > 编程语言 > JAVA进阶--常用时间API、包装类、正则表达式、Array类、Lambda表达式、常见算法--2022年9月1日

JAVA进阶--常用时间API、包装类、正则表达式、Array类、Lambda表达式、常见算法--2022年9月1日

时间:2022-09-02 12:46:31浏览次数:62  
标签:arr JAVA 进阶 -- System Arrays int println out

第一节  Date日期对象

  1、日期对象如何创建,如何获取时间毫秒值

    Date date = new Date();

    Long time = date.getTime();

  2、时间毫秒值怎么恢复成日期对象

    Date d = new Date(time);

    d.setTime(time);

第二节  SimpleDateFormat对象

  1、SimpleDateFormat可以格式化哪些时间形式?

    SimpleDateFormat sdf = new SimpleDateFormat();

    String rs1 = sdf.format(date);   //date是Date类型的对象

    String rs2 = sdf.format(time);   //time是long型的毫秒数

  2、SimpleDateFormat如何进行字符串时间的解析的

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    Date d = sdf.parse("2021-08-04 11:11:11");//上面的格式要和下面的格式一样

第三节  Calendar概述

  1、Calendar类

    

 

 

     

 

 

 第四节  JDK8新增日期类

  1、概述、LocalTime /LocalDate / LocalDateTime

    

    

 

    

 

 

     

 

 

     

 

 

   2、instant时间戳

    

 

 

   3、DateTimeFormatter

    

 

 

   4、Period:用于计算两个日期间隔

    

  5、Duration:用于计算两个时间间隔

     

 

 

   6、ChronoUnit

 

 

第五节  包装类:8种基本数据类型对应的引用类型

  

 

 

    

 

 

   上面把字符串类型的数值转换成真实的数据类型,还有这些方法: int age = Integer.valueOf(number);

                                 double age = Double.valueOf(number);

  1、包装类是什么?作用是什么

    基本数据类型对应的引用类型,实现了一切皆对象

    后期集合和泛型不支持基本类型,只能使用包装类

  2、包装类有哪些特殊功能

    可以把基本类型的数据转换成字符串类型(用处不大)

    可以吧字符串类型的数值转换成真实的数据类型(真的很有用)

第六节  正则表达式

  1、正则表达式初体验,校验qq号

    

package com.maofugui.regex;

public class RegexDemo1 {
    public static void main(String[] args){
        //需求:校验qq号码,必须全部数字6-20位
        System.out.println(checkQQ("21434545"));
        System.out.println(checkQQ("23dfdsdsaf"));
        System.out.println(checkQQ("12"));
        System.out.println(checkQQ(null));

        System.out.println("---------------------------");

        //正则表达式初体验
        System.out.println(checkQQ2("21434545"));
        System.out.println(checkQQ2("23dfdsdsaf"));
        System.out.println(checkQQ2("12"));
        System.out.println(checkQQ2(null));

    }

    public static boolean checkQQ2(String qq){
        return qq != null && qq.matches("\\d{6,20}");
    }

    public static boolean checkQQ(String qq){
        if(qq == null || qq.length()<6 || qq.length()>20){
            return false;
        }

        for (int i = 0; i < qq.length(); i++) {
            char ch = qq.charAt(i);
            if(ch < '0' || ch > '9'){
                return false;
            }
        }
        return true;
    }
}

  2、正则表达式的匹配规则  API文档找Pattern

    

 

    注意:正则表达式最好不要加空格,和官方写一样就行,加空格可能会报错。 

  3、正则表达式在方法中的应用

    

  4、正则表达式支持爬取信息

    

第七节  Arrays类:数组操作工具类,专门用于操作数组元素的

  1、Arrays类概述

    

 

     二分搜索数组中的数据这个方法在使用前,数组一定得先排好序!!

  2、Arrays类对于Comparator比较器的支持

    

 

     

package com.maofugui.Arrays;

import java.util.Arrays;
import java.util.Comparator;

public class ArraysDemo {
    public static void main(String[] args){
        Integer[] arr = {12,23,67,34,23};

        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));

        Arrays.sort(arr, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                if(o2 > o1)
                    return 1;//如果o2>o1 返回1,o1写前面,o2写后面
                else if(o2 < o1)
                    return -1;
                return 0;
            }
        });

        System.out.println(Arrays.toString(arr));
    }
}

第八节 选择排序和二分查找

  1.选择排序:找出最小的放在最前面(增加知识:冒泡排序,找出最大的放在最后)

      

package com.maofugui.Arrays;

public class choseSort {
    public static void main(String[] args){
        int[] arr= {5,2,1,3};

        //选择排序
        for (int i = 0; i < arr.length-1; i++) {
            //int[] arr= {5,2,1,3};
            //            0 1 2 3
            //  i=0  1,2,3
            //  i=1  2,3
            //  i=2  3
            for (int j = i+1; j < arr.length; j++) {
                if(arr[j] < arr[i]){
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }
}

  2、二分查找(前提:必须要排好序)

package com.maofugui.Arrays;

import java.util.Arrays;

public class BinarySearch {
    public static void main(String[] args){
        int[] arr = {12,54,23,65,34};
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
        System.out.println(binarySearch(arr,23));
    }

    public static int binarySearch(int[] arr,int num){
        int left = 0;
        int right = arr.length - 1;

        while (left <= right) {
            int middle = (right+left)/2;
            if(num > arr[middle]){
                //比中间数大  往右边找  left为middle+1
                left = middle + 1;
            }else if(num < arr[middle]){
                //比中间数小  往左边找  right变为middle-1
                right = middle - 1;
            }else{
                return middle;
            }
        }
        return -1;
    }
}

    

第九节  Lambda表达式:匿名内部类的简化

  1、只能简化接口中只有一个抽象方法的匿名内部类形式

    

 

     

 

   2、Lambda表达式的基本作用

    简化函数式接口的匿名内部类的写法

  3、Lambda表达式有什么使用前提

    必须是接口的匿名内部类,接口中只能有一个抽象方法

  4、lambda的好处

    lambda是一个匿名函数,我们可以把lambda表达式理解为是一段可以传递的代码,它可以写出更简洁、更灵活的代码,作为一种更紧凑的代码风格,使Java语言表达能力得到了提升。

  5、Lambda-简化常见函数式接口

    

 

     

 

  6、Lambda表达式的更加省略写法

    

 

标签:arr,JAVA,进阶,--,System,Arrays,int,println,out
From: https://www.cnblogs.com/Flower--Dance/p/16646335.html

相关文章

  • 【C++】断言、likely等
    断言assert就是对表达式进行判断,如果条件不成立就会调用abort()中止程序运行,对于debug空指针有奇效,但是release版本不会用是一个宏而非函数五个要点:1.在函数开始时,监测......
  • 27 移除元素
    题目27移除元素思路:不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地修改输入数组要知道数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能......
  • Flask 学习-38.Flask-RESTful 序列化输出中文显示问题
    前言flask接口无法显示中文,可以添加全局配置JSON_AS_ASCII=False,但是解决不了Flask-RESTful序列化输出中文问题flask配置中文显示添加全局配置项JSON_AS_ASCII=Fa......
  • php webman对接Luckysheet share多人协作模式项目
    2022年9月2日10:05:03gitee地址https://gitee.com/zxadmin/luckysheet-phpserver此项目目前定义为对接失败,当然Luckysheet也可以去除掉加密的部分,直接json通信就没问题......
  • linux命令集
    第一部分切换用户:su+用户名关机/重启(三种方法):①shutdown-rnow(重启)              shutdown-hnow(关机)②poweroff(......
  • LC557
    stringreverseWords(strings){intl=0;intr=0;for(inti=0;i<s.length();i++){if(s[i]==''){r=i-1;while(l<r){......
  • 电商平台快递物流解决方案
    ​前沿    从事电商行业几年,发表些个人想法,欢迎大家拍砖。电商平台的三流(商流、资金流、物流)是至关重要的三环,缺少了任何一环,平台就没办法玩下去。而其中的物流是......
  • LC344
    stringreverseWords(strings){intl=0;intr=0;for(inti=0;i<s.length();i++){if(s[i]==''){r=i-1;while(l<r){......
  • mysql查询数据库和数据表占用内存大小
    --查看所有数据库容量大小selecttable_schemaas'数据库',sum(table_rows)as'记录数',sum(truncate(data_length/1024/1024/1024,2))as'数据容量(GB)',sum(truncate......
  • for循环语法
    for循环for循环常用来遍历取值!for循环的基本语法for变量名in可迭代对象:代码1代码2...#可迭代对象可以是字典、列表、字符串、元组、集合for+r......