java:数组如果都一样

Kar*_*rem 9 java

我有一个数组:

int tarningar[] = new int[5];
Run Code Online (Sandbox Code Playgroud)

这有数字.当所有数字都相同时,system.out.println('ok');

我怎样才能做到这一点?

小智 18

public class EqualArrayTest {

    public static boolean isAllEqual(int[] a){
        for(int i=1; i<a.length; i++){
            if(a[0] != a[i]){
                return false;
            }
        }

        return true;
    }

    public static void main(String[] args){
        System.out.println(isAllEqual(new int[]{2,2,2}));
        System.out.println(isAllEqual(new int[]{2,2,1}));
    }
}
Run Code Online (Sandbox Code Playgroud)


Bor*_*vić 15

boolean flag = true;
int first = tarningar[0];
for(int i = 1; i < 5 && flag; i++)
{
  if (tarningar[i] != first) flag = false;
}
if (flag) System.out.println("ok");
Run Code Online (Sandbox Code Playgroud)

  • 您可以通过在`i <5`之后添加`&& flag`来改进它. (4认同)

小智 9

与谷歌的番石榴:

boolean allEqual = Sets.newHashSet(Ints.asList(tarningar)).size() == 1;
Run Code Online (Sandbox Code Playgroud)


Mat*_*hew 8

这是一个更简洁的 Java 8 流示例:

Arrays.stream(tarningar).distinct().count() == 1
Run Code Online (Sandbox Code Playgroud)


And*_*s_D 6

所有值都相同,等于所有值等于任何选定值.

因此,只需选择一个作为参考,并将此选择的值与所有其他值进行比较.


Ral*_*lph 5

import java.util.Arrays;

/**
 * Don't take it serious.
 * But it works.
 */
public class Demo {

    public static boolean isAllSame(int... numbers) {
        int[] firstItemArray = new int[numbers.length];         
        Arrays.fill(firstItemArray, numbers[0]);

        return Arrays.equals(numbers, firstItemArray);
    }

    public static void main(String[] args) {
        System.out.println(isAllSame(1,1,1,1));
        System.out.println(isAllSame(1,1,1,2));
    }
}
Run Code Online (Sandbox Code Playgroud)