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 - 检查项目是不是在数组中[重复]的主要内容,如果未能解决你的问题,请参考以下文章