Advertisement
Guest User

Untitled

a guest
Apr 19th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. package u7;
  2. import java.text.Collator;
  3. import java.text.CollationKey;
  4. import java.util.*;
  5.  
  6. class Person implements Comparable<Object>
  7. {
  8. private final String firstName;
  9. private final String lastName;
  10. private final Collator collator = Collator.getInstance(Locale.getDefault());
  11. private final CollationKey sortLastNameKey;
  12. private final CollationKey sortFirstNameKey;
  13. private int age;
  14.  
  15. public Person (String fName, String lName, int Age)
  16. {
  17. firstName = fName;
  18. lastName = lName;
  19. age = Age;
  20. sortLastNameKey = collator.getCollationKey(lastName.toUpperCase() + " " + firstName.toUpperCase());
  21. sortFirstNameKey = collator.getCollationKey(firstName.toUpperCase() + " " + lastName.toUpperCase());
  22. }
  23.  
  24. public CollationKey getFirstNameKey()
  25. {
  26. return sortFirstNameKey;
  27.  
  28. }
  29. public CollationKey getLastNameKey()
  30. {
  31. return sortLastNameKey;
  32.  
  33. }
  34. public String getFirstName()
  35. {
  36. return firstName;
  37.  
  38. }
  39. public String getLastName()
  40. {
  41. return lastName;
  42.  
  43. }
  44. public int getAge()
  45. {
  46. return age;
  47.  
  48. }
  49. public int compareTo(Object anotherPerson)throws ClassCastException
  50. {
  51. if (!(anotherPerson instanceof Person))
  52. {
  53. throw new ClassCastException("A Person.object expected");
  54. }
  55. int anotherPersonAge=((Person)anotherPerson).getAge();
  56. return this.age-anotherPersonAge;
  57. }
  58.  
  59. public String toString()
  60. {
  61. return "First name: " + firstName + ", Last name: " + lastName + ", Age: " + age;
  62. }
  63. }
  64. class LastNameComparator implements Comparator<Object>
  65. {
  66. public int compare(Object person,Object anotherPerson)
  67. {
  68. int res=((Person)person).getLastName().compareTo(((Person)anotherPerson).getLastName());
  69. if(res==0)
  70. {
  71. res=((Person)person).getFirstName().compareTo(((Person)anotherPerson).getFirstName());
  72. }
  73. return res;
  74. }
  75. }
  76.  
  77. class FirstNameComparator implements Comparator<Object>
  78. {
  79. public int compare(Object person,Object anotherPerson)
  80. {
  81. int res=((Person)person).getFirstName().compareTo(((Person)anotherPerson).getFirstName());
  82. if(res==0)
  83. {
  84. res=((Person)person).getLastName().compareTo(((Person)anotherPerson).getLastName());
  85. }
  86. return res;
  87. }
  88. }
  89. class User extends Person implements Comparable<Object>
  90. {
  91. private final String u_name;
  92. private final String u_password;
  93. public User (String uName, String uPass, String fName, String lName, int Age)
  94. {
  95. super(fName, lName, Age);
  96. u_name=uName;
  97. u_password=uPass;
  98. }
  99.  
  100. String getu_name()
  101. {
  102. return u_name;
  103. }
  104. String getu_password()
  105. {
  106. return u_password;
  107. }
  108. public boolean equals (Object o)
  109. {
  110. return getu_name().equals(((User)o).getu_name())&& getu_password().equals(((User)o).getu_password());
  111. }
  112. public String toString()
  113. {
  114. return "Username: " + u_name+ ", Personal data: " + super.toString() + "\n";
  115. }
  116. public int compareTo(Object o)
  117. {
  118. int res=getu_name().compareTo(((User)o).getu_name());
  119. if (res==0)
  120. {
  121. res=getu_password().compareTo(((User)o).getu_password());
  122. }
  123. return res;
  124. }
  125. }
  126. public class UsersGroup
  127. {
  128. private final String groupName;
  129. private final List<User>users=new Vector<User>();
  130. public UsersGroup(String gName)
  131. {
  132. groupName=gName;
  133. }
  134. public void addUser(User o)
  135. {
  136. users.add(o);
  137. }
  138. public void sortByLastName()
  139. {
  140. Collections.sort(users,new LastNameComparator());
  141. }
  142. public void sortByFirstName()
  143. {
  144. Collections.sort(users,new FirstNameComparator());
  145. }
  146. public void sortByUserName()
  147. {
  148. Collections.sort(users);
  149. }
  150. public String toString()
  151. {
  152. return "Group: " + groupName + users;
  153. }
  154.  
  155. public static void main(String[]args)
  156. {
  157. UsersGroup FirstGroup=new UsersGroup("Grupa 1");
  158. FirstGroup.addUser(new User("user1","pass1","Иван","Петров",25));
  159. FirstGroup.addUser(new User("user2","pass2","Иван","Тодоров",22));
  160. FirstGroup.addUser(new User("user3","pass3","Кристиян","Петров",23));
  161. FirstGroup.addUser(new User("user4","pass4","Иван","Иванов",21));
  162. System.out.println(FirstGroup);
  163. FirstGroup.sortByLastName();
  164. System.out.println(FirstGroup);
  165. }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement