枚举和Lambda表达式介绍

本文介绍了Java中的枚举类型,包括values(), ordinal(), valueOf(), compareTo()等常用方法及其优缺点。同时,详细讲解了Lambda表达式,阐述了为何使用Lambda,其语法特点,以及与函数式接口的关系。还探讨了Lambda在集合中的应用和优缺点。" 115038947,10537587,Java实现K-Means聚类算法在iris.data上的应用,"['机器学习', '数据挖掘', '算法实现', 'Java编程', '数据处理']
摘要由CSDN通过智能技术生成

目录

1.枚举

1.2 枚举常⽤⽅法

 (1)values() 使⽤

(2)ordinal() 使⽤

(3)valueOf() 使⽤

(4)compareTo() 使⽤

(5)枚举优缺点

 2.Lambda 表达式

2.1 为什么要⽤ Lambda?

2.2 Lambda 语法

2.3 Lambda 和函数式接⼝

          2.3.1 函数式接⼝

2.4 Lambda 的变量捕获

2.5 Lambda 在集合中的使⽤

2.6 Lambda 优缺点分


1.枚举

枚举是在 JDK 1.5 引⼊的,主要是⽤来表示⼀组相同业务的值,⽐如我们要实现卖⻋的程序,我们要定 义⼀组颜⾊来穷举这辆⻋所提供的所有颜⾊,在没有枚举之前,我们是这样实现的:

public static int final RED = 1;
public static int final GREEN = 2;
public static int final BLACK = 3;

以上代码存在的主要问题有以下 3 个:

1. 代码可读性低,⽐如,当我们看到数字 2 时,并不能准确的知道它代表的具体是什么颜⾊,我们要 去代码⾥⾯查。

2. 参数传递很容易出错,以上代码类型为 int,所以在传递时理论上是可以接受所有的 int 值的,但只 有部分值是有效的颜⾊,所有很容易传递值出错。

3. 写法不够优雅,在外层(外边类)调⽤时,看到的都是⼀个个魔法数字,很让⼈很疑惑。 但有了枚举之后,我们就可以使⽤以下代码来组织所有的颜⾊了:

public enum ColorEnum {
    //枚举的命名格式,所有的枚举值的使用全部用大写字母的形式定义
    RED, GREEN, BLACK;

}

它的优点有以下⼏个:

1. 增强了代码的可读性。

2. 减少了传递参数的错误概率。

3. switch 判断更⽅便,语法清晰。

4. 代码⾜够简洁、优雅。

1.2 枚举常⽤⽅法

 (1)values() 使⽤

以数组形式返回枚举类型的所有成员。

private static void eachEnum(){
        ColorEnum[] arrs = ColorEnum.values();
        for (ColorEnum item : arrs){
            System.out.println(item);
        }


    }

(2)ordinal() 使⽤

获取枚举成员的索引位置。

  private static void eachEnum(){
        
        ColorEnum[] arrs = ColorEnum.values();
        for (ColorEnum item : arrs){
            int enumIdx = item.ordinal();
            System.out.println(item + ":" + enumIdx);
        }


    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值