我正在遍历一个数组,并尝试获取满足某些条件的对象的索引。我想不出办法。
我尝试使用herniPlan.indexOf(m),但收到“找不到符号-方法indexOf(hra.Mince)
public class MojeHra implements IHra {
private Mince[] herniPlan;
int index;
public MojeHra()
{
herniPlan = new Mince[20];
herniPlan[0] = Mince.LITECOIN;
herniPlan[3] = Mince.LITECOIN;
herniPlan[4] = Mince.BITCOIN;
herniPlan[8] = Mince.LITECOIN;
hracVyhral = false;
hraSkoncila = false;
}
public Tah tahPocitace()
{
for(Mince m : herniPlan) {
if(m.equals(Mince.LITECOIN) || m.equals(Mince.BITCOIN)){
index = herniPlan.indexOf(m)
Tah tah = new Tah(index, 19);
}
}
}
答案 0 :(得分:2)
The enhanced for
statement(for(... : ...)
)不建议索引数组。您需要the basic for
statement(for(...; ...; ...)
)。
for (int i = 0; i < herniPlan.length; ++i) {
Mince m = herniPlan[i];
// i is your index
}
答案 1 :(得分:1)
首先,最好直接遍历索引:
for(int i = 0; i < herniPlan.length; i++) {
if(herniPlan[i].equals(Mince.LITECOIN) || herniPlan[i].equals(Mince.BITCOIN)){
index = i;
}
}
我看到您的数组不完整,因此您应该检查null:
for(int i = 0; i < herniPlan.length; i++) {
if(herniPlan[i] != null) {
if(herniPlan[i].equals(Mince.LITECOIN)
|| herniPlan[i].equals(Mince.BITCOIN)){
index = i;
}
}
}
最后,您可能会考虑将Java Collections用于您的应用程序。我建议您使用java.util.Map,因为我认为herniPlan中的索引不仅具有索引功能,还具有特殊含义。使用java.util.Map,您可以将这些值映射到特定的Mince。
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class MojeHra implements IHra {
private Map<Integer, Mince> herniPlan;
int index;
public MojeHra() {
herniPlan = new HashMap<>();
herniPlan.put(0, Mince.LITECOIN);
herniPlan.put(3, Mince.LITECOIN);
herniPlan.put(4, Mince.BITCOIN);
herniPlan.put(8, Mince.LITECOIN);
hracVyhral = false;
hraSkoncila = false;
}
public Tah tahPocitace()
{
for(Entry<Integer, Mince> entry : herniPlan.entrySet()) {
if(entry.getValue().equals(Mince.LITECOIN)
|| entry.getValue().equals(Mince.BITCOIN)){
index = entry.getKey();
Tah tah = new Tah(index, 19);
}
}
}
}
答案 2 :(得分:0)
您可以使用index = Arrays.asList(herniPlan).indexOf(m)
Arrays.asList(herniPlan)
将数组转换为ArrayList<Mince>
然后使用ArrayList
类的ArrayList.indexOf()方法,它将返回对象在ArrayList
中的位置。
引用:https://www.tutorialspoint.com/java/util/arraylist_indexof.htm