API和Lambda函数式编程思想

Arrays工具类

1.Arrays.toString()

该方法可以将对应数组内容以字符串形式输出

2.Arrays.sort(int [ ])

该方法对int数组内容进行选择排序

原理:

for (int x = 0; x < arr.length - 1; x++) { //外层循环表示基准位置,总共比较length - 1轮
            for (int y = x + 1; y < arr.length; y++) {//内层循环表示,从基准位置+1开始,到数组后面每个元素
                //3.基准位置 VS 后面元素比较  如果基准位置 > 后面元素 就交换(小的放基准位置)
                // arr[x]  arr[y]
                if (arr[x] > arr[y]) {
                    int temp = arr[x];
                    arr[x] = arr[y];
                    arr[y] = temp;
                }
            }
            System.out.println("第" + (x + 1) + "轮:" + Arrays.toString(arr));

        }

3.Arrays.binarySearch(int[ ] arr, int num)

该方法利用二分法进行查找指定元素

 public static int binarySearch(int[] arr, int num) {
        //1.定义最小索引  min
        int min=0;
        //2.定义最大索引  max
        int max=arr.length-1;
        //3.计算中间索引  mid
     //  int  mid=(min+max)/2;
        //4.比较 num  vs  arr[mid]
        // num > arr[mid]  min = mid + 1;
        // num < arr[mid]  max = mid - 1;
        // 找到了 return mid;
        //5.使用while循环,条件是? 包裹步骤3,4

        while(min<=max){
            int  mid=(min+max)/2;
            if(num>arr[mid]){
                 min=mid+1;
            }else if (num<arr[mid]){
                max=mid-1;

            }else{
                return mid;
            }
        }
        //找不到,返回-1
        return -1;
    }

4.冒泡排序补充

//进行length-1次排序

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]){
                 int temp=array[j];
                 array[j]=array[j+1];
                 array[j+1]=temp;
             }
     }

Date

1.构造方法

new Date()//获取起始时间到当前时间的毫秒值

new Date(毫秒值L)  //将指定毫秒值转换为Date对象

2.成员方法

setTime(毫秒值L)//将指定毫秒值传入Date对象

getTime()//获得当前Date对象的毫秒值

SimpleDateFormat

1.构造方法

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

2.成员方法

format(Date)

格式化:将Date对象按构造方法指定的形式转化

parse(String)

解析:将指定格式的字符串转化成Date对象类型

Calendar

1.获取Calendar对象

Calendar是抽象类,不可以直接实例化,但可以调用静态方法getInstance()获取对象

Clendar c=Clendar.getInstance();

2.常用方法

set(int field,int vaule)//通过set修改日历指定枚举的字段信息

field为指定的字段用Calendar.XXX的形式操作

Calendar.YEAR/Calendar.MONTH(0-11)/Calendar.DATE

getTime()//获得当前时间日期对象

getTimeInMillis();//获得当前时间毫秒值

add(int field,int amount)//对指定字段信息进行增减操作

 

                                                                   

BigDecimal类

1.获取对象

只有两种方式

构造器

new BigDecimal(String)

静态方法

BigDecimal.valueOf(double)

2.常用方法

add()加

subtract()减

multiple()乘

divide()除

当遇到divide无线循环结果时

divide(bd2,保留小数位数,RoundingMode.HALF_UP(舍入规则))

Lambda表达式(函数编程思想)

1.使用前提

有接口,有且只有一个抽象方法

2.Lambda的格式

(参数列表)->{方法体

3.Lambda省略格式

当只有一个参数时小括号可以省略,参数类型可以省略,方法体只有一个语句大括号,分号,renurn都能省略

4.用Lambda实现多态

  • 写一个接口
  • 写一个useXXX方法,参数类型是接口
  • 调用方法,传入匿名内部类
  • 如果是函数式接口使用Lambda表达式
posted on 2023-03-12 14:55  zl子路  阅读(26)  评论(0)    收藏  举报