java - Java 中的重复检查器

标签 java

好吧,我是这个网站的新手,但我知道我不应该在这里问硬件问题,但我要问的确实是硬件问题,但它已经完成并提交(并评分),我只是希望让我的程序在更好的理解下运行:)

为了证明我已经完成了它而不是试图快速完成,这里是提交页面的链接: http://i959.photobucket.com/albums/ae76/GoWxGaiA/HWDone_zps8ae79bf7.png

现在在程序上...我应该创建一个程序来检查用户输入的重复字符串,然后按排序顺序输出所有“唯一”字符串(不重复的字符串),以及然后在先前输出的正下方按排序顺序输出“非唯一”的。我的导师告诉我们,我们必须使用“三重嵌套循环”,我假设它只是一个 for 循环,一个 for 循环,一个 for 循环,一个 for 循环......一个数组,在这种情况下我不能也没有找到另一种方法。我为这个作业提交的是这样的:

package Homework2;
import java.util.Scanner;
public class Homework2 {    
    public static void main(String[] args) {
        Scanner stdin = new Scanner(System.in);
        System.out.println("Enter a list of words:");
        String[] words = stdin.nextLine().split(" ");
        System.out.println(words.length);
        String[] array = new String[words.length];
        for (int i = 0; i < words.length; i++) {
            if(words == words)           
                for (int j = 0; j < words.length; j++) {
                    array[j] = words;
                    System.out.println(array[j]);
                }

        }
    }
}               

再次强调,我已经提交了这项作业,我只是希望正确完成这项作业以加深我的理解。

如有任何帮助,我们将不胜感激!

最佳答案

我喜欢用一个相当简单的解决方案来解决这个问题:

Set<String> used = new HashSet<>();

public boolean wasUsed(String s) {
    return used.add(s);
}

//using the method
if (wasUsed(yourString)) {
    // duplicate!
}

Sets 仅包含 1 个元素,添加重复项时将返回 false。让管理变得非常简单。

对于您的情况,我会简单地保留一组单独的Set 单词,并在您遇到重复项时将其删除。

您可以在 Java's Collections 上阅读更多内容了解这些有用的工具。

关于java - Java 中的重复检查器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23000320/

相关文章:

Java 正则表达式找不到我的 Char 类

java - 如何使用 spring 配置异步和同步事件发布者

java - 支持字节范围的简单 Java Http 服务器

java - 使用 Hibernate 请求和分页多个不相关的实体类型

java - JPA 设置引用的属性而不检索它。最佳实践

Java:本地标准时间即时

java - 什么样的对象应该在ioc下

java - 从 Android URL 加载大量图像的最有效方法

java - 如何在Java中连接2个csv文件

java - Disqus 单点登录 (SSO) 问题