初步理解泛型、Collections、Lambda

泛型
泛型就是把数据类型作为参数传递
如在Comparable/Comparator接口中通过泛型指定比较元素的数据类型; 在集合中通过泛型指定存储元素的数据类型
泛型好处: 在编译阶段就进行数据类型检查

注意,集合中的泛型在定义时指定:
	Collection<String>  collection =  new  ArrayList<>();

Collection collection = new ArrayList(); 这种在定义变量时没有指定,在赋值时指定泛型,没有作用

Collections工具类
定义了一组synchronizedXXX(XXX)方法, 可以把XXX集合转换为线程安全的集合,
synchronizedCollection(Collection c)
synchronizedList(List list)
synchronizedMap(Map<K,V> m)
synchronizedSet(Set s)
在开发多线程程序中,一般不使用, 直接使用java.util.concurrent包中线程安全的类:
CopyOnWriterArrayList, CopyOnWriteArraySet, ConcurrentSkipListSet
ConcurrentHashMap, ConcurrentSkipListMap

Lambda
在数学领域, Lambda就是一个函数
在java中, 可以把Lambda看作是一个匿名方法
Lambda表达式可以看作是函数式接口中抽象方法的实现, 它省略了方法的修饰符, 返回值类型,参数类型, 甚至省略return语句

语法:
	(参数列表) -> {语句;}
说明:
	如果参数列表中只有一个参数, 小括弧可以省略
	如果有多个参数, 小括弧不能省略
	参数列表可以省略参数类型, 如果想要指定参数类型则必须为所有参数都指定类型
	如果lambda体只有一条语句, 大括弧可以省略
	如果有多条语句, 大括弧不能省略
如:
	没有参数, 返回一个值, return可以省略
		() ->  666
	有一个参数
		x -> x + 10
	有多个参数
		( x,y ) -> x+y
	指定参数类型
		(int x,  int y ) ->  x+y
	有多条语句, 需要使用大括弧
		(int x , int y ) -> {System.out.println( x + y );    return x+y; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值