在Java中,检测一个数组是否包含某一个数据,通常有四种方法:
(1)for循环
(2)转换为List,调用Arrays.asList(arr).contains方法
(3)使用Set
(4)使用Arrays.binarySearch()方法
下面为上述四种方法的具体代码实现:
1、使用for循环
publicstaticbooleanuseLoop(String[]arr,StringtargetValue){
for(Strings:arr){
if(s.equals(targetValue))
returntrue
}
returnfalse
}
2、转换为List,调用Arrays.asList(arr).contains方法
publicstaticbooleanuseList(String[]arr,StringtargetValue){
returnArrays.asList(arr).contains(targetValue)
}
3、使用Set
publicstaticbooleanuseSet(String[]arr,StringtargetValue){
Set<String>set=newHashSet<String>(Arrays.asList(arr))
returnset.contains(targetValue)
}
4、使用Arrays.binarySearch()方法
特别说明:binarySearch()二分查找仅适用于有序数组,如果不是有序数组,则报异常
publicstaticbooleanuseArraysBinarySearch(String[]arr,StringtargetValue){
inta=Arrays.binarySearch(arr,targetValue)
if(a>0){
returntrue
}else{
returnfalse
}}
扩展资料:
Java种List列表的contains方法:
该方法是通过遍历集合中的每一个元素并用equals方法比较是否存在指定的元素。
publicbooleancontains(Objecto){
Iterator<E>it=iterator()
if(o==null){
while(it.hasNext())
if(it.next()==null)
returntrue
}else{
while(it.hasNext())
if(o.equals(it.next()))
returntrue
}
returnfalse
}
参考资料来源:Java官网-API-Arrays
参考资料来源:Java官网-API-InterfaceList
java中的数组中必须存放相同的数据类型,不可以存放不同的数据类型。Object[]数组可以存进去各种数据类型,但别忘了这些数据类型统统都被自动提升成为了Object类型。也就是说,Object[]内部放的,都是Object类型的数据。
所以说,Java中的数组,必须存放相同类型的数据