Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package collections;
- import java.text.*;
- import java.util.*;
- class Person implements Comparable<Object>
- {
- private String f_name;
- private String l_name;
- private int age;
- private static final Collator collator = Collator.getInstance(Locale.getDefault());
- private CollationKey sortFirstNameKey;
- private CollationKey sortLastNameKey;
- Person(String f_name, String l_name, int age)
- {
- this.f_name=f_name;
- this.l_name=l_name;
- this.age= age;
- sortFirstNameKey = collator.getCollationKey(f_name.toUpperCase() + " " + l_name.toUpperCase());
- sortLastNameKey = collator.getCollationKey(l_name.toUpperCase() + " " + f_name.toUpperCase());
- }
- public int getAge()
- {
- return age;
- }
- public String getFName()
- {
- return f_name;
- }
- public String getLName()
- {
- return l_name;
- }
- public CollationKey getF_key()
- {
- return sortFirstNameKey;
- }
- public CollationKey getL_key()
- {
- return sortLastNameKey;
- }
- public int compareTo(Object p)
- {
- if(this.age<((Person)p).age)
- return -1;
- if (this.age>((Person)p).age)
- return 1;
- return 0;
- }
- public String toString()
- {
- return " Name: " + f_name + " " + l_name + " Age: " + age;
- }
- }
- class LastNameComparator implements Comparator<Object>
- {
- public int compare(Object ln , Object ln2)
- {
- int res = ((Person)ln).getLName().compareTo(((Person)ln2).getLName());
- if(res == 0)
- {
- res = ((Person)ln).getFName().compareTo(((Person)ln2).getFName());
- }
- return res;
- }
- }
- class FirstNameComparator implements Comparator<Object>
- {
- public int compare(Object ln , Object ln2)
- {
- int res = ((Person)ln).getFName().compareTo(((Person)ln2).getFName());
- if(res == 0)
- {
- res = ((Person)ln).getLName().compareTo(((Person)ln2).getLName());
- }
- return res;
- }
- }
- class User extends Person implements Comparable<Object>
- {
- private String userName;
- private String pass;
- User(String userName, String pass, String f_name, String l_name, int age)
- { super(f_name,l_name,age);
- this.userName = userName;
- this.pass = pass;
- }
- public String getUserName()
- {
- return userName;
- }
- public String getPass()
- {
- return pass;
- }
- public boolean equals(Object u)
- {
- return (this.userName.equals(((User)u).userName)) && (this.pass.equals(((User)u).pass));
- }
- public int compareTo(Object p)
- {
- int res = userName.compareTo(((User)p).userName);
- if(res == 0)
- {
- res = pass.compareTo(((User)p).pass);
- }
- return res;
- }
- public String toString()
- {
- return " User Name: " + userName + super.toString();
- }
- }
- public class UsersGroup {
- private String groupName;
- private List <User> users = new Vector<User>();
- UsersGroup(String groupName)
- {
- this.groupName = groupName;
- }
- public void addUser(User a)
- {
- users.add(a);
- }
- public void sortByLastName()
- {
- Collections.sort(users, new LastNameComparator());
- }
- public void sortByFirstname()
- {
- Collections.sort(users,new FirstNameComparator());
- }
- public void sortByUserName()
- {
- Collections.sort(users);
- }
- public String toString()
- {
- return "Group Name: " + groupName + users;
- }
- public static void main(String[] args) {
- UsersGroup a = new UsersGroup("Group 1");
- User b = new User("ivanDjukata", "12345", "Ivan","Djukalov" ,14);
- User c = new User("passaMiESilen", "qkPass", "Preslav","Panaiotov" ,21);
- User d = new User("KiroEQk", "54321", "Kiro","Sehalov" ,17);
- a.addUser(b);
- a.addUser(c);
- a.addUser(d);
- a.sortByLastName();
- System.out.println(a.toString());
- a.sortByFirstname();
- System.out.println(a.toString());
- a.sortByUserName();
- System.out.println(a.toString());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement