class NameComparator implements Comparator {
Comparator NameComparator = (o1, o2) -> o1.getName().compareTo(o2.getName());
@Override
public int compare(Staff o1, Staff o2) {
return 0;
}
}
Comparator<Staff> NameComparator = Comparator.comparing(Staff::getName);
def func():
return "你好"
res = func()
print(res)
# # lambda 表达式
# lambda 表达式自带return
res1 = lambda :"你好"
result = res1()
print(result)
# lambda的功能相对比较单一,只适用于简单的函数
# lambda 参数,参数,...:函数体的内容
def func(name,sex):
return name,"是",sex,"的"
res = func("你","我")
print(res)
#
res = lambda name,sex:name+"是"+sex+"的"
res1 = res("你","我")
print(res1)
def func(x,y,z):
res = x + y * z
return res
func(3,4,5)
res = lambda x,y,z:x + y * z
result = res(3,4,5)
print(result)
# lambda 函数里可以使用分支结构吗?可以,但是必须只能用单行分支结构的形式
def func(sex):
if sex == "男":
return "带把的"
else:
return "仙女降世"
res = func("男")
print(res)
res = lambda sex:"带把的" if sex == "男" else "仙女降世"
res2 = res("男")
print(res2)
关于lambda表达式的使用场景:
示例代码:
# 对列表进行排序时可以使用lambda表达式定义排序规则
nums = [3, 2, 4, 1]
nums.sort(key=lambda x:x%2 == 0) # 按照奇偶性进行排序,偶数在前,奇数在后
示例代码:
# 列表推导式中使用lambda表达式过滤数据
nums = [1,2,3,4,5,6,7,8,9]
even_nums = list(filter(lambda x:x%2 == 0, nums)) # 过滤偶数
# 使用lambda表达式对字典进行操作
dic = {'a': 1, 'b': 2, 'c': 3}
new_dic = sorted(dic.items(), key=lambda x:x[1]) # 根据字典的值进行排序
# 使用lambda表达式进行集合的映射
a = {1, 2, 3}
b = set(map(lambda x:x ** 2, a)) # 将集合a中的数进行平方操作并映射到集合b中