Skip to content

Commit b203b2a

Browse files
Merge pull request amitshekhariitbhu#32 from MilkBiscuit/master
Optimise time complexity of filterUserWhoLovesBoth
2 parents 7fe5c41 + 0028301 commit b203b2a

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

app/src/main/java/com/rxjava2/android/samples/model/User.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,22 @@ public String toString() {
2727
", isFollowing=" + isFollowing +
2828
'}';
2929
}
30+
31+
@Override
32+
public int hashCode() {
33+
return (int) id + firstname.hashCode() + lastname.hashCode();
34+
}
35+
36+
@Override
37+
public boolean equals(Object obj) {
38+
if (obj instanceof User) {
39+
User user = (User) obj;
40+
41+
return this.id == user.id
42+
&& this.firstname.equals(user.firstname)
43+
&& this.lastname.equals(user.lastname);
44+
}
45+
46+
return false;
47+
}
3048
}

app/src/main/java/com/rxjava2/android/samples/ui/networking/NetworkingActivity.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,13 +152,13 @@ public void onComplete() {
152152

153153
private List<User> filterUserWhoLovesBoth(List<User> cricketFans, List<User> footballFans) {
154154
List<User> userWhoLovesBoth = new ArrayList<>();
155-
for (User cricketFan : cricketFans) {
156-
for (User footballFan : footballFans) {
157-
if (cricketFan.id == footballFan.id) {
158-
userWhoLovesBoth.add(cricketFan);
159-
}
155+
156+
for (User footballFan : footballFans) {
157+
if (cricketFans.contains(footballFan)) {
158+
userWhoLovesBoth.add(footballFan);
160159
}
161160
}
161+
162162
return userWhoLovesBoth;
163163
}
164164

0 commit comments

Comments
 (0)