【问题标题】:Java - Check if item is in array [duplicate]Java - 检查项目是否在数组中[重复]
【发布时间】:2012-03-31 13:17:00
【问题描述】:

可能重复:
In Java, how can I test if an Array contains a certain value?

我有一个数组设置如下:

Material[] blockedlevel1 = {
            Material.mymaterialone, Material.mymaterialtwo  
        };

如何查看材质是否在此数组中?

【问题讨论】:

  • 寻找它,我想。有那个“循环”的东西。

标签: java arrays


【解决方案1】:

使用Arrays 类查找它怎么样?

Arrays#binarySearch

或者按照某人的建议,将您的数组转换为 List 并使用 contains() 方法。请记住,您可能必须重写 Material#equals 方法。

【讨论】:

    【解决方案2】:

    如果您想要一种简单的方法来检查元素是否是集合的一部分,您可能应该考虑使用不同的数据结构,例如 Set(并使用 contains())。使用 Array,您只能遍历元素并比较每个元素。

    【讨论】:

      【解决方案3】:

      在数组中查找如何?

      for (Material m : blockedlevel1) {
          if (m.equals(searchedMaterial)) { // assuming that equals() was overriden
              // found it! do something with it
              break;
          }
      }
      

      【讨论】:

      • 如何设置“m”,以便将其与数组进行比较?我需要检查Material block = event.getBlock().getType();(那是我的材料)。
      • 在上述循环中,m 依次绑定到数组的每个元素;您不需要设置它,for 循环会为您完成。您需要注意的是提供一个您可以比较的searchedMaterial(在您的示例中为block),在Material 类中实现equals() 方法,并执行if里面的东西,一旦你找到材料。
      • 啊我现在明白了,非常感谢您的澄清:D
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      相关资源
      最近更新 更多