判断一个集合中是否有某个元素可以用contains()方法,可我看到contains()的返回值直接就是判断indexOf()是否大于等于0,如图:
那么为什么还要用contains()方法呢?
一个库函数对另一个库函数进行封装是很常见的做法,之所以提供类似的函数,是方便调用者。如同一辆汽车,即提供换挡手柄,同时提供方向盘换挡拨片,两者功能重叠,但是方便了驾驶者,一个道理。
contains不关心匹配的元素在哪里,它只是判断是否存在。从语义上来说,indexof >= 0不如contains直观
可以查看一下源码,contains内部也是用indexof != -1 作为返回值的。其实也就是1楼解释的那样。方便不同场景调用。
contains只是判断是否有这个字符串,返回值为布尔型,indexOf也是可以判断是否有,但是他返回的是该字符的存在的下标值
我的返回的不是-1啊