1

フィールドisとis_searchableデータを持つリストがあります

field_id i_searchable
1234     1
2344     0
4553     1

リストをループして、データが検索可能かどうかを確認し、trueを返します。それ以外の場合はfalseを返します。

 public boolean validate() {
        LOGGER.info("in validate");
        boolean isSearchValue = false;
        LOGGER.info("is isSearchable" + fieldList.size());
        for (Field formFieldValMap : fieldList) {
            if (formFieldValMap.getIsSearchableField().equals("0")) {

                isSearchValue = false;
            } else {
                isSearchValue = true;
            }
        }

        return isSearchValue;
    }

上記の関数はtrueを返しますが、falseを返す必要があります。リストにis_searchableのすべてのデータが1ある場合は、それだけがtrueを返す必要があります。

4

4 に答える 4

4

逆の場合もありますが、リストにすべて1があると想定します。0が表示されたらすぐにfalseに設定し、ループから戻ります。

  boolean isSearchValue = true;


    for (Field formFieldValMap : fieldList) {
                if (formFieldValMap.getIsSearchableField().equals("0")) {

                    isSearchValue = false;
                    return;
                } 
            }

注:リストが空の場合の対処方法など、他の条件に注意する必要がある場合があります。

于 2012-10-02T16:14:11.333 に答える
1

ループを完了したい場合:

boolean isSearchValue = true;
for (Field formFieldValMap : fieldList) {
   isSearchValue &= formFieldValMap.getIsSearchableField().equals("1");
}
return isSearchValue;

さもないと:

for (Field formFieldValMap : fieldList) {
   if (formFieldValMap.getIsSearchableField().equals("0")) {
       return false;
   }
}
return true;
于 2012-10-02T16:16:51.247 に答える
0

あなたのコードは、最後の要素が「0」に等しくないかどうかを示しているだけです。これを使って:

 public boolean validate() {
        LOGGER.info("in validate");
        boolean isSearchValue = false;
        LOGGER.info("is isSearchable" + fieldList.size());
        for (Field formFieldValMap : fieldList) {
            if (formFieldValMap.getIsSearchableField().equals("0")) {

                return false; //if any
            } 
        }

        return true;
    } 
于 2012-10-02T16:15:08.357 に答える