2017-04-02 6 views
1
private ArrayList<SocialMediaAccount> socialMediaAccounts; 

public void addSocialMediaAccount(String userID, String websiteName, String websiteURL, int activityLevel) 
{ 
    SocialMediaAccount object = new SocialMediaAccount(userID, websiteName, websiteURL, activityLevel); 
    socialMediaAccounts.add(object); 
} 

私はこれをArrayListとし、特定のwebsiteNameを検索してそのオブジェクトに関連付けられたuserIDを返す必要があります。 多くのことを混乱させていますが、この問題を開始する上での助けが必要です。 ありがとう!ArrayListで文字列を検索し、関連する文字列を返す

+0

こんにちは、私はあなたのソリューションに残したコメントを参照してください。 –

答えて

2

あなたはArrayListを通過し、websiteNameは、このようなリストに格納されwebsiteNameはと一致するかどうかを確認することができます

for(int i = 0; i < socialMediaAccounts.size(); i++) 
    if(socialMediaAccounts.get(i).getWebSiteName().equals(the_website_you_arelooking_for){ 
    return socialMediaAccounts.get(i).getUserId 
    } 
} 
+0

'if'は特別な権利を必要としますが、全体的な前提は健全なようです。 –

+0

こんにちは、私が使用しなければならないヘッダーコードは 'public String getSocialMediaID(String websiteName)' –

+0

です。こんにちは、あなたが提供したコードまたはRahulのソリューションでこのヘッダーを使用する方法があまりにもわかりません。 –

0
I think what you will want  

for (SocialMediaAccount socialMediaAccount: socialMediaAccounts) { 
      if (socialMediaAccount.getwebsiteName() == your_website_search_name) { 
       return socialMediaAccount.getId(); 
      } 
     } 
     return null; 
+0

'=='それをしません。 'socialMediaAccount.getWebSiteName()。equals(your_website_search_name)'を使用する必要があります。 –

1

私はこの方法があなたの質問を解決するとします。あなたのsocialMediaAccountクラスの中にゲッターがあることを願っています。

public String getuserID(ArrayList<SocialMediaAccount> socialMediaAccounts,String websiteName){ 
for(SocialMediaAccount s:socialMediaAccounts){ 
    if(s.getWebsiteName().equalsIgnoreCase(websiteName)){ 
     return s.getUserID; 
    } 
} 
return "no user found"; 
} 
+0

Rajith私はこの回答が正しくないと思います。最初の条件が満たされないと、**ユーザーが見つかりません**とループから抜け出すためです。あなたは思いませんか? –

+0

@Farazあなたは正しいです..私はコードを変更しました。 –

+0

'if'の終わりに' {} 'が疑わしい;それはちょうど '{'ではないでしょうか? –

1

これは動作するはずです。

//This method will return the userID associated with the given target websiteName. 
//Insert it where you need it. 
public String search(String targetWebsiteName){ 
    //loop through each account in your list. 
    For(SocialMediaAccount acc: socialMediaAccounts){ 
     SocialMediaAccount tempObject = acc; 
     //check for websiteName 
     if(tempObject.getWebsiteName().equals(targetWebsiteName)) return tempObject.getUserID(); 
    } 
return null; 
} 


//Add these methods to your SocialMediaAccount class 
class SocialMediaAccount{ 

     //Getters for object variables 
     String getWebsiteName(){ 
      return websiteName; 
     } 

     String getUserID(){ 
      return userID; 
     } 
} 
1

あなたのリスト内の項目の多くを持っていて、はるかに高速になりますキーとしてWebサイト名を使用して、HashMapの検索をたくさんやっている場合。

関連する問題