JAVA基础

本文详细介绍了Java中的Arrays类,包括数组转换、二分查找、数组拷贝、填充、排序以及使用Lambda表达式简化接口的示例。
摘要由CSDN通过智能技术生成

 API~Arrays

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

public class test1 {
    public static void main(String[] args) {
        int[] arr={1,2,3,4,5,6,7,8,9,0};
        Arrays.toString(arr);//变成数组[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
        //二分查找
        //必须是升序
        //如果存在返回索引,如果不存在返回(-插入点-1)
        Arrays.binarySearch(arr, 10);//-11
        //拷贝数组
        //如果新数组长度小于老数组就部分拷贝,大于多出默认初始化0
        Arrays.copyOf(arr,10);
        //拷贝数组(指定范围)
        //包头不包尾
        Arrays.copyOfRange(arr,0,5);
        //填充数组(把值全部改成一样的数)
        Arrays.fill(arr,100);//全部改成100
        //排序
        //给基本数据类型排序底层用快速排序,默认升序
        int[] arr1={2,5,6,7,3,6,17,65};
        Arrays.sort(arr1);
        //Arrays.sort(数组,规则);
        //只能给引用数据类型排序,基本数据类型要变成包装类
        //第二个参数是个接口,所以我们要传实现类对象,只需要用一次的话就用匿名内部类
        Integer[] arr2={5,7,2,3,9,10,15,20};
        Arrays.sort(arr2, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;//降序
            }
        });
        
    }
}

Lambda表达式

可以用来简化接口匿名内部类(只能是接口的 )

只能简化函数式接口的匿名内部类

(函数式接口就是只有一个方法,可以用@FunctionInterface注释)

lambda的省略规则

1.参数类型可以省略不写

2..如果只有一个参数,参数类型省略,()也可以省略

3.如果方法体只有一行,大括号,分号,return可以不写,必须同时省略。

  Integer[] arr2={5,7,2,3,9,10,15,20};
        Arrays.sort(arr2, (o1, o2)-> o2-o1);//降序

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值