Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不使用循环构造的情况下,使用布尔值对重复的字表示true或false_Java - Fatal编程技术网

Java 在不使用循环构造的情况下,使用布尔值对重复的字表示true或false

Java 在不使用循环构造的情况下,使用布尔值对重复的字表示true或false,java,Java,+ 公共类测试 { 公共静态布尔输出(字符串[]输入){ for(int i=0;i

+

公共类测试
{
公共静态布尔输出(字符串[]输入){
for(int i=0;i
我已经成功地运行了一个代码,它告诉我如果字符串数组中有一系列重复的单词,那么它是真是假,但是,如果没有一个循环构造也能找到大小写重复,我怎么能实现这一点呢?

使用一个
映射,它将字符串列表/数组中的单词作为键(小写单词)应该可以解决您的问题。如果新词已经存在(使用映射中的
toLowercase()
检查新词),则可以返回true


您必须显式或隐式地遍历字符串列表或数组至少一次(如果不是
for loop
那么
for each
loop)(Java8隐藏循环或其他集合的构造函数)查找是否有重复的单词。

简而言之,如果没有任何循环,则无法执行此操作。但是,如果要查找隐藏的循环,则可以使用以下方法:

public class Test                                   
{
public static boolean Out(String[] input) {
        for (int i = 0; i < input.length; i++) {
            for (int j = 0; j < input.length; j++) {
                if (input[i].equals(input[j]) && i != j) {
                    return true;
                }
            }
        }
        return false;
    }

在使用数组时,您希望如何在不进行迭代的情况下找到重复项?我实际上对第一个方法的工作原理很感兴趣,请注意解释:)@SamzSakerz A
Set
保证没有重复项(重复项不会添加到中).所以数组和集合中元素数量的差异意味着某个地方存在重复。我发现了一个拼写错误:(啊,我知道集合不能包含像地图这样的重复项,但从来没有想过这样使用它
public class Test                                   
{
public static boolean Out(String[] input) {
        for (int i = 0; i < input.length; i++) {
            for (int j = 0; j < input.length; j++) {
                if (input[i].equals(input[j]) && i != j) {
                    return true;
                }
            }
        }
        return false;
    }
public static boolean out(String[] input) {
    return input.length != new HashSet<String>(Arrays.asList(input)).size();
}
public static boolean out(String[] input) {
    return input.length != Arrays.stream(input).map(String::toLowerCase).collect(Collectors.toSet()).size();
}