2012-04-24 5 views
0

配列を検索しようとしていますが、2つの文字列が一致する場合はtrueを返し、そうでない場合はfalseを返します。最初にアカウントが既に存在するかどうかを調べたい場合はif 2 exsisはその後 配列を検索する新しいユーザー

public boolean searchArray(String account, String code) {  
    for (Accounts a : bAccounts) { 
     if (a.getAccount().equals(account)) { 
      for (Accounts c : bAccounts) { 
       if (c.getCode().equals(Code)) 
        return true; 
       } 
      } 
     } 

    return false; 
} 
を返し、私は、この検索方法の中に失われた少しを持っていると考えて誰もがこの上で私を助けてくださいすることができ、感謝します。これはすべてうまくコンパイルされますが、何も返されないようです。 AccountsとSortのメソッドを取得して設定しているAccountsクラスのメソッドを取得しました。

+1

非常に混乱する名前です。変数名は大文字にするべきではなく、型名は複数ではなく単数である。また、2つの文字列は、単一のオブジェクトまたはオブジェクトの任意のペアに一致するはずですか? – Tudor

答えて

1
public boolean searchArray(String account, String code) {  
    for (Accounts a : bAccounts) { 
     if (a.getAccount().equals(account) 
        && a.getCode().equals(code)) {     
      return true;      
     } 
    } 

    return false; 
} 

インナーを削除する必要があります。

+0

これは常にfalseを返しています –

+0

それはあなたのデータを検索することに問題はありません。 –

0

アカウントとコードのパラメータにnullを受け入れるかどうかについては言及していません。

NULL値を比較することが望ましい/可能性がある場合は、これは私がお勧めです:

public boolean searchArray(String account, String code) { 
    // if you won't consider nulls then there's no need to search 
    // when at least one of them is null 
    if ((account == null) || (code == null)) { 
     return false; 
    } 

    for (Account a : accounts) { 
     if (account.equals(a.getAccount()) && code.equals(a.getCode())) { 
      return true; 
     } 
    } 

    return false; 
} 

public boolean searchArray(String account, String code) { 

    for (Account a : accounts) { 
     if (account == null) { 
      if (code == null) { 
       if ((a.getAccount() == null) && (a.getCode() == null)) { 
        return true; 
       } 
      } else { 
       if ((a.getAccount() == null) && code.equals(a.getCode())) { 
        return true; 
       } 
      } 
     } else { 
      if (code == null) { 
       if (account.equals(a.getAccount()) && (a.getCode() == null)) { 
        return true; 
       } 
      } else { 
       if (account.equals(a.getAccount()) && code.equals(a.getCode())) { 
        return true; 
       } 
      } 
     } 
    } 

    return false; 
} 

アカウントとコードのパラメータのヌルを考慮しない場合、私はこれを提案

希望すると助かります

+0

私はこれを使って、新しいアカウントがアカウントに追加されたときにオブジェクトが同じように存在するかどうか比較します。エントリポイントでnullフィールドを処理するハンドラを持つため、null値は渡されません。これはすべてのインスタンスでnullを返します。私は何が渡されているかを印刷して、有効な口座とコードを印刷していますが、それはただちにfalseを返すだけです。 –