I want to sort my ArrayList
using a boolean type. Basically i want to show entries with true
first. Here is my code below:
Abc.java
public class Abc { int id; bool isClickable; Abc(int i, boolean isCl){ this.id = i; this.isClickable = iCl; } }
Main.java
List<Abc> abc = new ArrayList<Abc>(); //add entries here //now sort them Collections.sort(abc, new Comparator<Abc>(){ @Override public int compare(Abc abc1, Abc abc2){ boolean b1 = abc1.isClickable; boolean b2 = abc2.isClickable; if (b1 == !b2){ return 1; } if (!b1 == b2){ return -1; } return 0; } });
Order before sorting: true true true false false false false true false false
Order after sorting: false false true true true true false false false false
Approach: An ArrayList can be Sorted by using the sort() method of the Collections Class in Java. This sort() method takes the collection to be sorted as the parameter and returns a Collection sorted in the Ascending Order by default.
Another way to go is:
Collections.sort(abc, new Comparator<Abc>() { @Override public int compare(Abc abc1, Abc abc2) { return Boolean.compare(abc2.isClickable,abc1.isClickable); } });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With