RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
java判断数组的代码 javascript判断数组

java中如何高效的判断数组中是否包含某个元素

可以使用如下的代码:

开封网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。成都创新互联2013年开创至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联

Arrays.asList(yourArray).contains(yourValue)

但这并不适用于基本数据类型的数组。

在Java8之后,你可以使用Stream来检测int,double,long类型的数组是否包含某个数值。(分别用IntStream, DoubleStream和LongStream),例如:

int[] a = {1,2,3,4};

boolean contains = IntStream.of(a).anyMatch(x - x == 4);

对于数组的一些操作,你可以上秒秒学了解相关的知识。

java怎么判断数组里

java中知道数组中实际的元素个数的方法:

定义一个变量保存数组中的元素个数,然后对数组进行遍历,当数组元素不为空时,变量的值+1,否则不改变。

代码为:int n = 0; //保存元素个数的变量for(int i = 0; i array.length; i++){if(null != array[i]) n++;}System.out.println(n);

在Java中判断数组中包含某个元素的几种方式的比较

直接上代码:

package test.contain.lishaojie;

import java.util.Arrays;

import java.util.HashSet;

import java.util.Set;

public class TestContain {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

String[] arr = new String[] { "DD", "CC", "DD", "FF", "KK"};

String target ="A";

int times = 1000;//次数

//转换成list方式

long startTime = System.currentTimeMillis();

for (int i = 0; i times; i++) {

ByList(arr, target);

}

long endTime = System.currentTimeMillis();

long duration = endTime - startTime;

System.out.println("list方式: " + duration / 1000000);

//转换成set方式

startTime = System.currentTimeMillis();

for (int i = 0; i times; i++) {

BySet(arr, target);

}

endTime = System.currentTimeMillis();

duration = endTime - startTime;

System.out.println("set方式: " + duration / 1000000);

//直接循环方式

startTime = System.currentTimeMillis();

for (int i = 0; i times; i++) {

ByForLoop(arr, target);

}

endTime = System.currentTimeMillis();

duration = endTime - startTime;

System.out.println("循环方式: " + duration / 1000000);

//二分法查找

startTime = System.currentTimeMillis();

for (int i = 0; i times; i++) {

ByArraysBinarySearch(arr, target);

}

endTime = System.currentTimeMillis();

duration = endTime - startTime;

System.out.println("二分法查找: " + duration / 1000000);

}

public static boolean ByList(String[] arr, String targetValue) {

return Arrays.asList(arr).contains(targetValue);

}

public static boolean BySet(String[] arr, String targetValue) {

SetString set = new HashSetString(Arrays.asList(arr));

return set.contains(targetValue);

}

public static boolean ByForLoop(String[] arr, String targetValue) {

for(String s: arr){

if(s.equals(targetValue))

return true;

}

return false;

}

public static boolean ByArraysBinarySearch(String[] arr, String targetValue) {

int a = Arrays.binarySearch(arr, targetValue);

if(a 0)

return true;

else

return false;

}

}

运行结果如下:

list方式: 5

set方式: 22

循环方式: 2

二分法查找: 3

经过大量数据测试循环方式效率最高,其次是二分法,最后是list,和set因为因为将数组压入Collection类型中,首先要将数组元素遍历一遍,然后再使用集合类做其他操作。但是list方式明显要比set方式快很多,这是为什么呢?直接看代码:首先

@SafeVarargs

@SuppressWarnings("varargs")

public static T ListT asList(T... a) {

return new ArrayList(a);

}

返回的是ArrayList所以set方式还要进行一次操作将ArrayList转换成set,

public HashSet(Collection? extends E c) {

map = new HashMap(Math.max((int) (c.size()/.75f) + 1, 16));

addAll(c);

}

之一addAll方法:

public boolean addAll(Collection? extends E c) {

boolean modified = false;

for (E e : c)

if (add(e))

modified = true;

return modified;

}

又一次进行了选环,所以效率比较低,binggo

java 如何判断数组里的值是0,如果是0则去掉0

public class Arr {

public static void main(String[] args) {

int[] nums = {2,6,9,4,7,0,1,7,0,5,3};

int[] temp = new int[nums.length];//临时数组

int len = 0;

for(int x :nums)

{

if(x != 0)

{

temp[len++]=x;

}

}

nums = new int[len];//len等于nums中大于0的个数

for(int i = 0;ilen;i++)

{

nums[i]=temp[i];

}

for(int m:nums){

System.out.println(m);

}

}

}

java 数组 相关问题 ,如何获取数组名或判断是否属于该数组

给你两个解决方案

第一种:定义两个boolean变量inA,inB,初始值均为false,然后遍历数组A和B,如果输入数值在A中有相等的值,那么inA=true,如果在B中有相等的值,则inB=true。最后判断inA和inB的值就可以了,代码如下:

import java.util.Scanner;

public class OperaArray {

public static void main(String[] args) {

int[] A={1,2,3,4,5};

int[] B={6,7,8,9,10};

Integer cin=Integer.valueOf(new Scanner(System.in).next());

boolean inA=false;

boolean inB=false;

for(int i=0;iA.length||iB.length;i++){

if(cin==A[i]){

inA=true;

}else if(cin==B[i]){

inB=true;

}

}

if(inA==true){

System.out.println(cin+"在A数组中");

}

if(inB==true){

System.out.println(cin+"在B数组中");

}

}

方案2:使用list的contains方法:先把数组转化为列表

int[] A={1,2,3,4,5};

int[] B={6,7,8,9,10};

Integer cin=Integer.valueOf(new Scanner(System.in).next());

ListInteger list1=new ArrayListInteger();

ListInteger list2=new ArrayListInteger();

for(int i=0;iA.length;i++){

list1.add(Integer.valueOf(A[i]));

}

for(int i=0;iB.length;i++){

list2.add(Integer.valueOf(B[i]));

}

if(list1.contains(cin)){

System.out.println(cin+"在数组A中");

}else if(list2.contains(cin)){

System.out.println(cin+"在数组B中");

}else{

System.out.println(cin+"不存在于这两个数组中");

}

}

}

java中equals对字符数组的判断

equals方法是比较hashCode的值的,即比较在内存中地址的值。

字符串比较特殊,内容相同的的String在内存中地址是一样的。所以hashCode值是相同的。

而不同的数组对象的hashCode不同,所以得出你以上的结果。


网站名称:java判断数组的代码 javascript判断数组
文章位置:http://cqwzjz.cn/article/hjosis.html