检查列表是否包含特定值

时间:2017-11-26 04:35:37

标签: java list

坚持我的算法,我要做的就是打印我的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,但无法找到答案。

1 个答案:

答案 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:这将打印所有匹配的名称,包括列表重复匹配的情况