Advertisement
Guest User

Untitled

a guest
Apr 21st, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.35 KB | None | 0 0
  1. package collections;
  2.  
  3. import java.text.*;
  4. import java.util.*;
  5.  
  6. class Person implements Comparable<Object>
  7. {
  8. private String f_name;
  9. private String l_name;
  10. private int age;
  11. private static final Collator collator = Collator.getInstance(Locale.getDefault());
  12. private CollationKey sortFirstNameKey;
  13. private CollationKey sortLastNameKey;
  14.  
  15. Person(String f_name, String l_name, int age)
  16. {
  17. this.f_name=f_name;
  18. this.l_name=l_name;
  19. this.age= age;
  20. sortFirstNameKey = collator.getCollationKey(f_name.toUpperCase() + " " + l_name.toUpperCase());
  21. sortLastNameKey = collator.getCollationKey(l_name.toUpperCase() + " " + f_name.toUpperCase());
  22. }
  23.  
  24. public int getAge()
  25. {
  26. return age;
  27. }
  28.  
  29. public String getFName()
  30. {
  31. return f_name;
  32. }
  33.  
  34. public String getLName()
  35. {
  36. return l_name;
  37. }
  38.  
  39. public CollationKey getF_key()
  40. {
  41. return sortFirstNameKey;
  42. }
  43.  
  44.  
  45. public CollationKey getL_key()
  46. {
  47. return sortLastNameKey;
  48. }
  49.  
  50. public int compareTo(Object p)
  51. {
  52. if(this.age<((Person)p).age)
  53. return -1;
  54. if (this.age>((Person)p).age)
  55. return 1;
  56. return 0;
  57. }
  58.  
  59. public String toString()
  60. {
  61. return " Name: " + f_name + " " + l_name + " Age: " + age;
  62. }
  63. }
  64.  
  65. class LastNameComparator implements Comparator<Object>
  66. {
  67.  
  68. public int compare(Object ln , Object ln2)
  69. {
  70. int res = ((Person)ln).getLName().compareTo(((Person)ln2).getLName());
  71. if(res == 0)
  72. {
  73. res = ((Person)ln).getFName().compareTo(((Person)ln2).getFName());
  74. }
  75. return res;
  76. }
  77.  
  78. }
  79.  
  80. class FirstNameComparator implements Comparator<Object>
  81. {
  82.  
  83. public int compare(Object ln , Object ln2)
  84. {
  85. int res = ((Person)ln).getFName().compareTo(((Person)ln2).getFName());
  86. if(res == 0)
  87. {
  88. res = ((Person)ln).getLName().compareTo(((Person)ln2).getLName());
  89. }
  90. return res;
  91. }
  92.  
  93. }
  94.  
  95. class User extends Person implements Comparable<Object>
  96. {
  97. private String userName;
  98. private String pass;
  99.  
  100. User(String userName, String pass, String f_name, String l_name, int age)
  101. { super(f_name,l_name,age);
  102. this.userName = userName;
  103. this.pass = pass;
  104. }
  105.  
  106.  
  107. public String getUserName()
  108. {
  109. return userName;
  110. }
  111.  
  112. public String getPass()
  113. {
  114. return pass;
  115. }
  116.  
  117. public boolean equals(Object u)
  118. {
  119. return (this.userName.equals(((User)u).userName)) && (this.pass.equals(((User)u).pass));
  120. }
  121.  
  122. public int compareTo(Object p)
  123. {
  124. int res = userName.compareTo(((User)p).userName);
  125. if(res == 0)
  126. {
  127. res = pass.compareTo(((User)p).pass);
  128. }
  129. return res;
  130. }
  131.  
  132.  
  133. public String toString()
  134. {
  135. return " User Name: " + userName + super.toString();
  136. }
  137. }
  138.  
  139. public class UsersGroup {
  140.  
  141. private String groupName;
  142. private List <User> users = new Vector<User>();
  143.  
  144. UsersGroup(String groupName)
  145. {
  146. this.groupName = groupName;
  147. }
  148.  
  149. public void addUser(User a)
  150. {
  151. users.add(a);
  152. }
  153.  
  154. public void sortByLastName()
  155. {
  156. Collections.sort(users, new LastNameComparator());
  157. }
  158.  
  159. public void sortByFirstname()
  160. {
  161. Collections.sort(users,new FirstNameComparator());
  162. }
  163.  
  164. public void sortByUserName()
  165. {
  166. Collections.sort(users);
  167. }
  168.  
  169. public String toString()
  170. {
  171. return "Group Name: " + groupName + users;
  172. }
  173.  
  174. public static void main(String[] args) {
  175. UsersGroup a = new UsersGroup("Group 1");
  176. User b = new User("ivanDjukata", "12345", "Ivan","Djukalov" ,14);
  177. User c = new User("passaMiESilen", "qkPass", "Preslav","Panaiotov" ,21);
  178. User d = new User("KiroEQk", "54321", "Kiro","Sehalov" ,17);
  179. a.addUser(b);
  180. a.addUser(c);
  181. a.addUser(d);
  182. a.sortByLastName();
  183. System.out.println(a.toString());
  184. a.sortByFirstname();
  185. System.out.println(a.toString());
  186. a.sortByUserName();
  187. System.out.println(a.toString());
  188.  
  189. }
  190.  
  191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement