Guest User

Untitled

a guest
Aug 2nd, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.30 KB | None | 0 0
  1. finding repeated combinations in a list
  2. //hm is the hashmap...
  3. //up is the list....
  4. for(int i=0; i<up.length(); i++){
  5. if(hm.contains(up[i])){
  6. System.out.println("Repeated combination");
  7. break;
  8. }
  9. else{
  10. hm.put(up[i],i);
  11. }
  12. }
  13.  
  14. class User {
  15. private final String id = UUID.randomUUID().toString();
  16. private final String username;
  17. private final String password;
  18.  
  19. public User(String username, String password) {
  20. this.username = username;
  21. this.password = password;
  22. }
  23.  
  24. @Override
  25. public boolean equals(Object obj) {
  26. if (obj instanceof User) {
  27. User user = (User) obj;
  28. return id.equals(user.getId()) &&
  29. username.equals(user.getUsername()) &&
  30. password.equals(user.getPassword());
  31. }
  32. return false;
  33. }
  34.  
  35. public int hashCode() {
  36. return id.hashCode() + username.hashCode() * 31 + password.hashCode() * 31 * 31;
  37. }
  38.  
  39. public String getId() {
  40. return id;
  41. }
  42.  
  43. public String getUsername() {
  44. return username;
  45. }
  46.  
  47. public String getPassword() {
  48. return password;
  49. }
  50. }
  51.  
  52. class UserWrapper {
  53. private final User user;
  54.  
  55. public UserWrapper(User user) {
  56. this.user = user;
  57. }
  58.  
  59. @Override
  60. public boolean equals(Object obj) {
  61. if (obj instanceof UserWrapper) {
  62. UserWrapper userWrapper = (UserWrapper) obj;
  63. return user.getUsername().equals(userWrapper.getUser().getUsername()) &&
  64. user.getPassword().equals(userWrapper.getUser().getPassword());
  65. }
  66. return false;
  67. }
  68.  
  69. public int hashCode() {
  70. return user.getUsername().hashCode() + user.getPassword().hashCode() * 31;
  71. }
  72.  
  73. public User getUser() {
  74. return user;
  75. }
  76. }
  77.  
  78. class DuplicateUserFinder {
  79.  
  80. public List<UserWrapper> findDuplicates(List<UserWrapper> allUsers) {
  81. final List<UserWrapper> duplicateList = new ArrayList<UserWrapper>();
  82. final Set<UserWrapper> duplicateSet = new HashSet<UserWrapper>();
  83.  
  84. for (UserWrapper wrapper : allUsers) {
  85. if (duplicateSet.contains(wrapper)) {
  86. duplicateList.add(wrapper);
  87. } else {
  88. duplicateSet.add(wrapper);
  89. }
  90. }
  91.  
  92. return duplicateList;
  93. }
  94.  
  95. }
  96.  
  97. public class DuplicateUserFinderTest {
  98.  
  99. private final DuplicateUserFinder finder = new DuplicateUserFinder();
  100.  
  101. @Test
  102. public void shouldReturnEmptyIfNoDuplicates() {
  103. User user1 = new User("user1", "pass1");
  104. User user2 = new User("user2", "pass2");
  105. UserWrapper userWrapper1 = new UserWrapper(user1);
  106. UserWrapper userWrapper2 = new UserWrapper(user2);
  107.  
  108. Assert.assertTrue(finder.findDuplicates(Arrays.asList(userWrapper1, userWrapper2)).isEmpty());
  109. }
  110.  
  111. @Test
  112. public void shouldReturnDuplicates() {
  113. User user1 = new User("user", "pass");
  114. User user2 = new User("user", "pass");
  115. UserWrapper userWrapper1 = new UserWrapper(user1);
  116. UserWrapper userWrapper2 = new UserWrapper(user2);
  117.  
  118. Assert.assertTrue(finder.findDuplicates(Arrays.asList(userWrapper1, userWrapper2)).contains(userWrapper2));
  119. Assert.assertThat(finder.findDuplicates(Arrays.asList(userWrapper1, userWrapper2)).size(), CoreMatchers.equalTo(1));
  120. }
  121.  
  122. }
Add Comment
Please, Sign In to add comment