Java - 检查项目是不是在数组中[重复]

Posted

技术标签:

【中文标题】Java - 检查项目是不是在数组中[重复]【英文标题】: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  
        ;

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

【问题讨论】:

寻找它,我想。有那个“循环”的东西。 【参考方案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

以上是关于Java - 检查项目是不是在数组中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python检查元组的任何项目是不是在字符串中[重复]

检查数组 React 中是不是存在项目

如何检查字符串是不是在列表中,使用每个项目上的函数(python3)[重复]

检查dict中是不是存在给定项目的列表[重复]

检查映射数组中的项目是不是共享值

NSMutableArray检查项目是不是存在[重复]