Arraylist сопоставляет и возвращает один единственный логический результат - PullRequest
0 голосов
/ 02 февраля 2011

У меня проблема с сопоставлением строки с массивом строк и получением одного логического результата.По сути, я использовал цикл for для сопоставления, и все, что я получил, было серией логических значений.Но то, что я хочу, это то, что когда есть один среди всех логических значений, он вернет одно единственное значение, а если это все, то он вернет одно значение.Код как ниже.Справка ТТ

import java.util.*;
public class NewClass {
    public static void main(String [] args){
        ArrayList <String> aList = new ArrayList <String>();
        aList.add("I");
        aList.add("Love");
        aList.add("You");
        aList.add("Black");
        aList.add("Colored");
        aList.add("Ferrari");
        boolean match;
        for(int i = 0; i < aList.size();i++){
            match = aList.get(i).equals("Red");
            System.out.print(match);
        }
        }
    }

Ответы [ 2 ]

4 голосов
/ 02 февраля 2011

содержит должен сделать трюк

    if (aList.contains("Red")) {
        //cool
    }
1 голос
/ 02 февраля 2011

Вы должны выйти из цикла, как только найдете совпадение, и распечатать результат вне цикла, как показано ниже:

    boolean match = false ;
    for(int i = 0; i < aList.size();i++){
        match = aList.get(i).equals("Red");
        if(match){
            break;
        }
    }
    System.out.print(match);

В качестве альтернативы, более короткий подход состоит в том, чтобы не использовать цикл, а вместо этого вызвать метод списка contains:

    boolean match = aList.contains("Red");
    System.out.println(match);
...