2015-10-23 56 views
0

我有飲料和那些有稱爲類型的關係船。如何用對象數組做一個ANY查詢?

飲料可以有許多類型和類型可以有許多飲料。

現在我想創建一個查詢,給我所有類型爲「甜」的飲料。這很容易,但現在我有一個類型的數組,我想要一個查詢,給我所有的飲料匹配數組中的任何類型。

我現在正在解決這個對我的國家是這樣的:

List<String> filterCountries = mGson.fromJson(prefsUtil.filterCountries(), mType); 
     if(filterCountries != null) { 
      realmQuery.beginGroup(); 

      for (int cursor = 0; cursor < filterCountries.size(); cursor++) { 
       String country = filterCountries.get(cursor); 
       realmQuery.equalTo("country.name", country); 
       if (cursor != (filterCountries.size() - 1)) { 
        realmQuery.or(); 
       } 
      } 
      realmQuery.endGroup(); 
     } 

但我認爲這是一個醜陋的解決方案。但我沒有找到任何要做的事情?

+0

你可能想到一個LINQ等價的Java:http://stackoverflow.com/questions/18154023/best-way-or-similar-lambda-expression-or-linq-on-android-eclipse-不知道目前的狀態那是在Android –

+0

我認爲'realmQuery.beginGroup();'和'realmQuery.endGroup();'是沒有必要的。除此之外,它看起來不錯。你爲什麼覺得這很醜? – beeender

+0

因爲在iOS中我可以用關鍵字ANY做得更短,現在我需要像這樣寫。但是,謝謝:-) – user1007522

回答

1

你可以像這樣遍歷數組:

String[] myStringArray = {"Hello","World"}; 
for(String s : myStringArray) 
{ 
    //Do something 
} 

if語句來檢查數組項是你在找什麼,並把它添加到「結果」陣列

+0

那不是我要找的。我想要所有類型爲Sweet,Fruity的飲料。所以我想要一個查詢,給我所有這些類型的飲料。但這是可變的,這就是爲什麼我的類型在一個數組中,用戶可以選擇這個。 – user1007522

+0

是的,所以通過數組中的所有飲料,檢查每個人的類型,並將它們添加到包含您正在查找的結果的新數組中。 –

+0

這是n^2最壞情況的解決方案。一定會有更好的辦法? – user1007522