Java 使用Arrays.asList()和HashSet检查数组是否有所有相同的元素
给定一个有N个元素的数组arr[],任务是在不使用循环的情况下,检查该数组是否有所有相同的元素(相同)。如果所有元素都相同,则打印Yes,否则打印No。
例子。
输入:arr[] = {2, 2, 2, 2, 2}
输出:是
给出的数组有所有相同的元素,即2。
输入:arr[] = {2, 3, 3, 3, 3, 2, 2}
输出:没有
建议:请先在 {IDE}上尝试你的方法,然后再继续解决
办法。首先,我们检查数组的大小,如果一个数组的大小是0或1,那么这个数组是相同的。如果它的大小大于1,那么我们取一个集合,用Arrays.asList()将数组的所有元素复制到一个集合中。然后我们计算集合的大小,如果集合的大小是1,那么数组就有所有相同的元素,否则就不相同。
下面是上述方法的实现。
// Java implementation of the approach
import java.util.*;
class GFG {
// Generic function to check whether the given array
// has all identical element or not
public static <T> void checkIdentical(T array[])
{
// Create the Set by passing the Array
// as parameter in the constructor
Set<T> set = new HashSet<>(Arrays.asList(array));
// Check the size of set, f size is 0 or 1 then
// array has only identical elements
if (set.size() == 1 || set.isEmpty()) {
System.out.print("Yes");
}
else {
System.out.print("No");
}
}
// Driver code
public static void main(String args[])
{
Integer arr[] = { 2, 2, 2, 2, 2, 2 };
checkIdentical(arr);
}
}
输出:
Yes