Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- finding repeated combinations in a list
- //hm is the hashmap...
- //up is the list....
- for(int i=0; i<up.length(); i++){
- if(hm.contains(up[i])){
- System.out.println("Repeated combination");
- break;
- }
- else{
- hm.put(up[i],i);
- }
- }
- class User {
- private final String id = UUID.randomUUID().toString();
- private final String username;
- private final String password;
- public User(String username, String password) {
- this.username = username;
- this.password = password;
- }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof User) {
- User user = (User) obj;
- return id.equals(user.getId()) &&
- username.equals(user.getUsername()) &&
- password.equals(user.getPassword());
- }
- return false;
- }
- public int hashCode() {
- return id.hashCode() + username.hashCode() * 31 + password.hashCode() * 31 * 31;
- }
- public String getId() {
- return id;
- }
- public String getUsername() {
- return username;
- }
- public String getPassword() {
- return password;
- }
- }
- class UserWrapper {
- private final User user;
- public UserWrapper(User user) {
- this.user = user;
- }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof UserWrapper) {
- UserWrapper userWrapper = (UserWrapper) obj;
- return user.getUsername().equals(userWrapper.getUser().getUsername()) &&
- user.getPassword().equals(userWrapper.getUser().getPassword());
- }
- return false;
- }
- public int hashCode() {
- return user.getUsername().hashCode() + user.getPassword().hashCode() * 31;
- }
- public User getUser() {
- return user;
- }
- }
- class DuplicateUserFinder {
- public List<UserWrapper> findDuplicates(List<UserWrapper> allUsers) {
- final List<UserWrapper> duplicateList = new ArrayList<UserWrapper>();
- final Set<UserWrapper> duplicateSet = new HashSet<UserWrapper>();
- for (UserWrapper wrapper : allUsers) {
- if (duplicateSet.contains(wrapper)) {
- duplicateList.add(wrapper);
- } else {
- duplicateSet.add(wrapper);
- }
- }
- return duplicateList;
- }
- }
- public class DuplicateUserFinderTest {
- private final DuplicateUserFinder finder = new DuplicateUserFinder();
- @Test
- public void shouldReturnEmptyIfNoDuplicates() {
- User user1 = new User("user1", "pass1");
- User user2 = new User("user2", "pass2");
- UserWrapper userWrapper1 = new UserWrapper(user1);
- UserWrapper userWrapper2 = new UserWrapper(user2);
- Assert.assertTrue(finder.findDuplicates(Arrays.asList(userWrapper1, userWrapper2)).isEmpty());
- }
- @Test
- public void shouldReturnDuplicates() {
- User user1 = new User("user", "pass");
- User user2 = new User("user", "pass");
- UserWrapper userWrapper1 = new UserWrapper(user1);
- UserWrapper userWrapper2 = new UserWrapper(user2);
- Assert.assertTrue(finder.findDuplicates(Arrays.asList(userWrapper1, userWrapper2)).contains(userWrapper2));
- Assert.assertThat(finder.findDuplicates(Arrays.asList(userWrapper1, userWrapper2)).size(), CoreMatchers.equalTo(1));
- }
- }
Add Comment
Please, Sign In to add comment