【问题标题】:Checking if an array contains certain integers检查数组是否包含某些整数
【发布时间】:2012-11-27 04:01:04
【问题描述】:

我正在制作一个长度为 10 个整数的数组,因此每个位置 0-9 包含一个不同的整数 0-9。

我无法弄清楚如何检查数组是否已经包含某个数字,如果是,则重新生成一个新数字。

到目前为止我有:

for (int i = 0; i < perm.length; i++)
{
    int num = (int) (Math.random() * 9); 
    int []

    perm[i] = num;   
}

【问题讨论】:

标签: java arrays integer


【解决方案1】:
Arrays.asList(perm).contains(num) 

来自How can I test if an array contains a certain value?

for (int i = 0; i < perm.length; i++)

这样循环是不够的,如果发生碰撞,一些槽可能不会被初始化。

总的来说,对于这个任务,你最好按顺序用值初始化数组,然后使用随机排列索引shuffle

【讨论】:

  • 我是 java 新手,刚开始学习数组。你能给我一个例子来说明你的意思或解释吗?
  • @user1729448,解释一下什么?您是否按照提供的链接进行操作?
  • 那么Arrays.asList(perm).contains(num) 会准确回答你的问题。
  • 这是错误的。Arrays.asList(perm) 返回一个 Listcontains 可能并不总是正确的,即使数字在那里。
  • 这是错误的。在 contains(num) 中,num 应该是一个对象。但即使这个数字很早就被发现,它也永远不会是同一个物体。因为这里为每个 int 值创建一个新的 Integer 对象并将其传递给方法。
【解决方案2】:

这是一个完整的答案

int[] array = {3,9, 6, 5, 5, 5, 9, 10, 6, 9,9};

    SortedSet<Integer> s = new TreeSet();
    int numberToCheck=61;
    for (int i = 0; i < array.length; i++) {
        s.add(array[i]);
    }

    System.out.println("Number contains:"+!(s.add(numberToCheck)));


    System.out.println("Sorted list:");
    System.out.print(s);

【讨论】:

  • 为什么要定义“mode”和“maxCount”变量?
  • 很抱歉给您带来了困惑。它们不是必需的。我编辑了删除它们的答案
【解决方案3】:

同时添加字符串和整数来检查是否存在。

public class existOrNotInArray {

public static void elementExistOrNot() {
    // To Check Character exist or not
    String array[] = { "AB", "CD", "EF" };

    ArrayList arrayList = new ArrayList<>();

    String stringToCheck = "AB";

    for (int i = 0; i < array.length; i++) {
        arrayList.add(array[i]);
    }

    System.out.println("Character exist : " + arrayList.contains(stringToCheck));

    // To Check number exit or not
    int arrayNum[] = { 1, 2, 3, 4 }; // integer array

    int numberToCheck = 5;

    for (int i = 0; i < arrayNum.length; i++) {
        arrayList.add(arrayNum[i]);
    }
    System.out.println("Number exist :" + arrayList.contains(numberToCheck));
}

public static void main(String[] args) {
    elementExistOrNot();
}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 2020-09-08
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 2011-04-02
    相关资源
    最近更新 更多