Java / Android studio:For循环 - 相同的数据显示多次

时间:2018-05-06 22:17:22

标签: java android android-studio for-loop realm

所以我试图创建这个页面来比较用户对其他用户的兴趣并显示所有这些用户的列表..现在,我创建了for循环,一个特定用户的名字重复直到循环结束。我只在文本字段中显示每个用户名的一个名称..但是,我不知道该怎么做..这是我的代码,用于展示有共同兴趣的用户:

 Realm realm= Realm.getDefaultInstance();
        RealmResults<interests> result=realm.where(interests.class).findAll();
        RealmResults<Users> user=realm.where(Users.class).findAll();
     for(int i=0;i<result.size();i++)
            {
                for(int j=0;j<result.size();j++)
                {
                    if(result.get(i).getId().equals(userid))
                    {
                        if(result.get(i).getInterest().equals(result.get(j).getInterest()))
                        {
                            if(!result.get(j).getId().equals(userid)) {
                                users = result.get(j).getId();
                                interestss.append("Interests :" + result.get(i).getInterest());
                            }

                        }
                        id.append("\n"+users);

                    }
                }
            }

1 个答案:

答案 0 :(得分:1)

 for(int i=0;i<result.size();i++)
        {
            for(int j=0;j<result.size();j++)
            {
                if(result.get(i).getId().equals(userid))
                {
                    if(result.get(i).getInterest().equals(result.get(j).getInterest()))

如果您使用Realm的查询系统和链接查询,而不是手动循环和比较,我几乎98%确定您甚至不需要编写此类代码。

RealmResults<Interests> interests = realm.where(Interests.class)
                                         .equalTo("user.userId", userId)
                                         .findAll();

如果你有从兴趣到用户的反向链接,这应该是可能的。

// in Interests class
@LinkingObjects("interest")
private final RealmResults<User> user = null;