Arrays,简化代码,算法,正则表达式,异常

Arrays

在这里插入图片描述

//把数组中的原始数据改为新数据
double[] price={11.1,33.0,2.3};
        Arrays.setAll(price, new IntToDoubleFunction() {
            @Override
            public double applyAsDouble(int value) {
                return price[value]*0.8;
            }
        });
        System.out.println(Arrays.toString(price));

*第一个拷贝数组的指定范围包前不包后
2.数组中存储的是对象,如何排序?在这里插入图片描述

@Override
    public int compareTo(Student o) {
        //升序规定:左边对象 大于 右边对象 返回正整数
        //		左边对象 小于 右边对象 返回负整数
	    //		左边对象 等于 右边对象 返回0
        return this.age-o.age;}//降序相反 
Arrays.sort(students, new Comparator<Student>() {
            @Override//double升序
            public int compare(Student o1, Student o2) {
   return Double.compare(o1.getHeight(), o2.getHeight());}});

jdk8新特性:Lambda表达式

1.认识Lambda表达式:

在这里插入图片描述

		Arrays.sort(students, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return Double.compare(o1.getHeight(), o2.getHeight());
            }
        });
   //简化 
   Arrays.sort(students,(Student o1, Student o2) ->{
                return Double.compare(o1.getHeight(), o2.getHeight());
        });

2.Lambda表达式的省略规则(进一步简化):
在这里插入图片描述

jdk8新特性:方法引用

1.静态方法引用:类名::静态方法
使用场景:如果某个Lambda表达式里只是调用一个静态方法,并且前后参数的形式一致,就可以用静态方法引用。
2.实例方法引用:对象名::实例方法
使用场景:如果某个Lambda表达式里只是调用一个实例方法,并且前后参数的形式一致,就可以用实例方法引用。
3. 特定类型方法引用:类型::方法
使用场景:如果某个Lambda表达式里只是调用一个实例方法,并且前面参数列表中的第一个参数是作为方法主调,后面的所以参数都是作为该实例方法的入参的。
*4. 构造器引用:类名::new
使用场景:如果某个Lambda表达式里只是在创建对象,并且前后参数情况一致,就可以用构造器引用。

算法

先搞清楚算法流程,直接去推敲如何敲代码。
一.排序算法
1.冒泡排序:在这里插入图片描述

2.选择排序:在这里插入图片描述
二分查找:
1.前提条件:数组中的数据必须是有序的
2.核心思想:每次排除一半的数据,查询数据的性能明显提高很多

public static int binarySearch(int[] arr,int date){
        //1定义两个变量,一个站在左边位置,一个右边
        int left=0;
        int right= arr.length-1;
        //2.定义一个循环控制折半
            while (left<=right){
                //3每次折半,都算出中间位置的索引
                int mid=(left+right)/2;
                if (date>arr[mid]){
                    left=mid+1;
                } else if (date<arr[mid]) {
                    right=mid-1;
                }else { return mid;  }          }
        		return -1; }

正则表达式

·就是由一些特定的字符组成,代表的是一个规则
·作用:1.用来校验数据是否合格
2.在一段文本中查找满足要求的内容
在这里插入图片描述
在这里插入图片描述

异常

throw:抛出去异常对象
throws:用在方法上,抛出方法内部的异常
在这里插入图片描述
*抛异常的时候不知道抛的异常是哪一种,可以直接抛Exception
在这里插入图片描述
对异常的处理:
1.捕获异常,记录异常并返回合适的信息给用户
2.捕获异常,尝试重新修复

while (true) {
            try {
                System.out.println(getMoney());
                break;
            } catch (Exception e) {
                System.out.println("请输入合法数字:");
            } }

编写自定义异常处理类:

public class myException extends Exception {
    static final long serialVersionUID=-923627383723798L;
    public myException(String msg) {
        super(msg);
    }}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值