Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Here a complete example :</p> <p>Suppose we have a Person class like :</p> <pre><code>public class Person { protected String fname; protected String lname; public Person() { } public Person(String fname, String lname) { this.fname = fname; this.lname = lname; } public boolean equals(Object objet) { if(objet instanceof Person) { Person p = (Person) objet; return (p.getFname().equals(this.fname)) &amp;&amp; p.getLname().equals(this.lname)); } else return super.equals(objet); } @Override public String toString() { return "Person(fname : " + getFname + ", lname : " + getLname + ")"; } /** Getters and Setters **/ } </code></pre> <p>Now we create a comparator : </p> <pre><code>import java.util.Comparator; public class ComparePerson implements Comparator&lt;Person&gt; { @Override public int compare(Person p1, Person p2) { if(p1.getFname().equalsIgnoreCase(p2.getFname())) { return p1.getLname().compareTo(p2.getLname()); } return p1.getFname().compareTo(p2.getFname()); } } </code></pre> <p>Finally suppose we have a group of persons : </p> <pre><code>import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Group { protected List&lt;Person&gt; listPersons; public Group() { this.listPersons = new ArrayList&lt;Person&gt;(); } public Group(List&lt;Person&gt; listPersons) { this.listPersons = listPersons; } public void order(boolean asc) { Comparator&lt;Person&gt; comp = asc ? new ComparePerson() : Collections.reverseOrder(new ComparePerson()); Collections.sort(this.listPersons, comp); } public void display() { for(Person p : this.listPersons) { System.out.println(p); } } /** Getters and Setters **/ } </code></pre> <p>Now we try this :</p> <pre><code>import java.util.ArrayList; import java.util.List; public class App { public static void main(String[] args) { Group g = new Group(); List listPersons = new ArrayList&lt;Person&gt;(); g.setListPersons(listPersons); Person p; p = new Person("A", "B"); listPersons.add(p); p = new Person("C", "D"); listPersons.add(p); /** you can add Person as many as you want **/ g.display(); g.order(true); g.display(); g.order(false); g.display(); } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload