java - 10,100,200,300...测试时不工作

标签 java arraylist data-structures

我需要从用户那里获取一个号码,并将它们分成单个数字并将其存储到数据结构中,而不插入任何已插入的号码。

我的程序对于给出一些余数的数字工作正常,但对于给出余数为零的数字则不起作用。

现在我不想让我的代码动态化,我只是通过更改 i 进行测试

我的代码是这样的:

public class Samp {

public static void main(String[] args) {
  int i = 555,n;
    List<Integer> digits = new ArrayList<Integer>();
    while(i > 0) {
        n = i % 10;
        if(digits.contains(n)){
            break;
        }else{
            digits.add(n);
        }
        i /= 10;
    }
    System.out.println(digits);
}
}

请帮助我编写适用于所有数字的代码。

最佳答案

如果您希望防止重复,您应该使用 HashSet 而不是 ArrayList

您只需开始将值放入 HashSet 即可。

这是代码片段:

public static void main (String[] args) throws Exception {
    int i = 555;
    Set<Integer> set = new HashSet<>();
    while(i > 0) {
        set.add(i % 10);
        i /= 10;
    }
    System.out.println(set);
}

输出:

[5]

关于java - 10,100,200,300...测试时不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36515526/

相关文章:

java - int扫描仪可以接受的最大数字数

java - 当参数作为通用 ArrayList<?> 传递时如何添加

java - 何时在 LinkedList 或 ArrayList 上使用 HashMap,反之亦然

java - 查找 ArrayList 对象 - 搜索不起作用?

c++ - 我如何优化以下程序?

java - 尝试读取文本文件中的特殊字符数量

java - Maven 无法找到 Stash 插件的依赖项

java - 我如何遍历所有可能性,将一个 ArrayList 拆分为两个大小为 k 和 (n-k) 的 ArrayList?

c - 如何使用双向链表正确初始化大结构?

java - 按位与在 Java 哈希表哈希查找中?