java中如何高效的判断数组中是否包含某个元素
来源:互联网 发布:java网络高级编程 pdf 编辑:程序博客网 时间:2024/06/06 05:02
package zaLearnpackage;
import org.apache.commons.lang3.ArrayUtils;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
//检查数组是否包含某个值的方法
public
class
TestArray {
//使用List
public
static
boolean useList(String[] arr,String targetValue){
return
Arrays.asList(arr).contains(targetValue);
}
//使用Set
public
static
boolean useSet(String[] arr,String targetValue){
Set<String>
set
=
new
HashSet<String>(Arrays.asList(arr));
return
set
.contains(targetValue);
}
//使用循环判断
public
static
boolean useLoop(String[] arr,String targetValue){
for
(String s:arr){
if
(s.
equals
(targetValue))
return
true
;
}
return
false
;
}
//查找有序数组中是否包含某个值的用法
public
static
boolean useArraysBinarySearch(String[] arr,String targetValue){
int
a=Arrays.binarySearch(arr, targetValue);
if
(a>0)
return
true
;
else
return
false
;
}
//使用ArrayUtils
public
static
boolean useArrayUtils(String[] arr,String targetValue){
return
ArrayUtils.contains(arr,targetValue);
}
public
static
void
main(String[] args) {
String[] arr=
new
String[]{
"CD"
,
"BC"
,
"EF"
,
"DE"
,
"AB"
,
"JK"
};
//use list
long
startTime=System.nanoTime();
for
(
int
i=0;i<100000;i++){
useList(arr,
"A"
);
}
long
endTime=System.nanoTime();
long
duration=endTime-startTime;
System.
out
.println(
"useList:"
+duration/1000000);
//use set
long
startTime2=System.nanoTime();
for
(
int
i=0;i<100000;i++){
useSet(arr,
"A"
);
}
long
endTime2=System.nanoTime();
long
duration2=endTime2-startTime2;
System.
out
.println(
"useSet:"
+duration/1000000);
//use loop
long
startTime3=System.nanoTime();
for
(
int
i=0;i<100000;i++){
useLoop(arr,
"A"
);
}
long
endTime3=System.nanoTime();
long
duration3=endTime3-startTime3;
System.
out
.println(
"useLoop:"
+duration/1000000);
//use Arrays.binarySearch()
long
startTime4=System.nanoTime();
for
(
int
i=0;i<100000;i++){
useArraysBinarySearch(arr,
"A"
);
}
long
endTime4=System.nanoTime();
long
duration4=endTime4-startTime4;
System.
out
.println(
"useArraysBinarySearch:"
+duration/1000000);
}
}
/*
* 显然,使用一个简单的循环方法比使用任何集合都更加高效。许多开发人员为了方便,都使用第一种方法,但是他的效率也相对较低。因为将数组压入Collection类型中,首先要将数组元素遍历一遍,然后再使用集合类做其他操作。
*/
阅读全文
0 0
- 【Java】如何高效判断数组中是否包含某个元素?
- 在Java中如何高效的判断数组中是否包含某个元素
- 在Java中如何高效的判断数组中是否包含某个元素
- 在Java中如何高效的判断数组中是否包含某个元素
- 在Java中如何高效的判断数组中是否包含某个元素
- Java中如何高效的判断数组中是否包含某个元素
- 在Java中如何高效的判断数组中是否包含某个元素
- 在Java中如何高效的判断数组中是否包含某个元素
- 在Java中如何高效的判断数组中是否包含某个元素
- java中如何高效的判断数组中是否包含某个元素
- Java中高效判断数组中是否包含某个元素。
- 在Java中如何高效判断数组中是否包含某个元素
- 在Java中如何高效判断数组中是否包含某个元素
- 在Java中如何高效判断数组中是否包含某个元素
- 在Java中如何高效判断数组中是否包含某个元素
- 在Java中如何高效判断数组中是否包含某个元素
- 在Java中如何高效判断数组中是否包含某个元素
- 在Java中如何高效判断数组中是否包含某个元素
- Installing pytorch
- 【LeetCode】623.Add One Row to Tree(Medium)解题报告
- hdu4810 Wall Painting 二进制组合数学
- javascript写出各大商城网站的购物车抛物线效果
- map容器的使用 加上一个map与set综合运用的例子
- java中如何高效的判断数组中是否包含某个元素
- linux zip tar 压缩与解压缩
- 应届生-软件开发面经
- 每日一练-11
- java新特性—Annotation
- Openmeetings4.0.0二次开发日志(二)linux下安装Openmeetings4.0.0
- 算法设计课程总结3(DP动态规划)
- Spring PropertyEditor 相关类的模拟实现
- Android面试题