Use List
rather than using Array. Your class needs to implements Comparable interface
.
Please see the code,
By Implementing Comparable interface
public class Person implements Comparable<Person>{
private String givenName;
private String surname;
public static void main(String[] args) {
Person person1 = new Person("a","b");
Person person2 = new Person("c","d");
Person person3 = new Person("e","f");
List<Person> personList = new ArrayList<Person>();
personList.add(person1);
personList.add(person2);
personList.add(person3);
Collections.sort(personList);
System.out.println(personList);
}
@Override
public String toString() {
return "WorkSheet [givenName=" + givenName + ", surname=" + surname
+ "]";
}
public Person() {
// TODO Auto-generated constructor stub
}
public Person(String givenName , String surname) {
this.givenName = givenName;
this.surname = surname;
}
public String getGivenName() {
return givenName;
}
public void setGivenName(String givenName) {
this.givenName = givenName;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
@Override
public int compareTo(Person o) {
// TODO Auto-generated method stub
return o.getSurname().compareTo(this.getSurname());
}
}
By Implementing Comaparator Interface
public class Person implements Comparator<Person>{
private String givenName;
private String surname;
public static void main(String[] args) {
Person person1 = new Person("a","b");
Person person2 = new Person("c","d");
Person person3 = new Person("e","f");
List<Person> personList = new ArrayList<Person>();
personList.add(person1);
personList.add(person2);
personList.add(person3);
Collections.sort(personList , new Person());
System.out.println(personList);
}
@Override
public String toString() {
return "WorkSheet [givenName=" + givenName + ", surname=" + surname
+ "]";
}
public Person() {
// TODO Auto-generated constructor stub
}
public Person(String givenName , String surname) {
this.givenName = givenName;
this.surname = surname;
}
public String getGivenName() {
return givenName;
}
public void setGivenName(String givenName) {
this.givenName = givenName;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
@Override
public int compare(Person o1, Person o2) {
// TODO Auto-generated method stub
return o2.getSurname().compareTo(o1.getSurname());
}
}