坚持我的算法,我要做的就是打印我的playerAway
字符串(playerAway
列表的第一个元素)与playerNames
列表中的任何元素匹配的位置。我还希望索引位置形成我的playerNames
,所以我做了什么
public static void evaluationOfTrade(List tradeAway, List playerNames) {
for (int i = tradeAway.size(); i > 0; i--) {
String playerAway = (String) tradeAway.get(0);
String playerAwaySearch = (String) playerNames.get(i);
if (playerAway.equals(playerNames)) {
System.out.println("Player found:" + " " + playerAway + " Index is : " + playerNames.indexOf(playerAway));
}
}
}
有任何帮助吗?我一直在阅读ArrayLists,但无法找到答案。
答案 0 :(得分:0)
正如您在评论中提到的那样
我试图查看该数组列表中的第一个值是否为“tradeAway”, 在PlayerNames中
因此,我可以假设您只想针对playerNamed
中的第一个元素搜索tradeAway
列表。如果是这样,则迭代整个tradeAway
列表没有任何意义。你可以简单地用几行来完成它
/* You might want to specify the List type rather than having bare List */
public static void evaluationOfTrade(List<String> tradeAway,
List<String> playerNames) {
String playerAway = tradeAway.get(0);
if (playerNames.contains(playerAway)) {
System.out.println("Player found:" + " " + playerAway + " Index is : " + playerNames.indexOf(playerAway));
}
}
这里使用contains()
方法,Collection
接口返回一个布尔值,告诉列表是否包含参数对象。
但如果你想坚持 for循环,那么也会这样做
public static void evaluationOfTrade(List<String> tradeAway,
List<String> playerNames) {
String playerAway = tradeAway.get(0);
for (int i = 0; i < playerNames.size(); i++) {
if (playerAway.equals(playerNames.get(i))) {
System.out.println("Player found:" + " " + playerAway + " Index is : " + playerNames.indexOf(playerAway));
}
}
}
NB:这将打印所有匹配的名称,包括列表重复匹配的情况