In this article, we will discuss how to convert Ordered ArrayList into Sorted TreeSet in Java
We can sort ArrayList in both ascending and descending order, by passing ArrayList contents as argument to TreeSet’s inter-conversion constructor
Converting Ordered ArrayList into Sorted TreeSet:
Solution:
- Ascending order: use TreeSet, by passing ArrayList contents as arguments to inter-conversion constructor
- Descending order: use TreeSet, by implementing Comparator interface and providing reverse sorting logic and finally add all elements of ArrayList to TreeSet using addAll() method of Collection interface
1. Converting Ordered ArrayList to Sorted TreeSet in Ascending-order
Syntax:
TreeSet<String> set = new TreeSet<String>(arrayList);
SortingArrayListInAscendingOrder.java
package in.bench.resources.java.collections;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.TreeSet;
public class SortingArrayListInAscendingOrder {
public static void main(String[] args) {
// creating ArrayList object of type String
ArrayList<String> onlineMart = new ArrayList<String>();
// adding elements to ArrayList object
onlineMart.add("Flipkart");
onlineMart.add("PepperFry");
onlineMart.add("Snapdeal");
onlineMart.add("Myntra");
onlineMart.add("Amazon");
onlineMart.add("Shop Clues");
onlineMart.add("Jabong");
System.out.println("Before Sorting : Insertion order\n");
// Iterating using Iterator
Iterator<String> strIterator = onlineMart.iterator();
while(strIterator.hasNext()) {
System.out.println(strIterator.next());
}
// convert to TreeSet
TreeSet<String> ts = new TreeSet<String>(onlineMart);
System.out.println("\n\n\nAfter Sorting : Ascending order\n");
// Iterating using Iterator
Iterator<String> ascSorting = ts.iterator();
while(ascSorting.hasNext()) {
System.out.println(ascSorting.next());
}
}
}
Output:
Before Sorting : Insertion order
Flipkart
PepperFry
Snapdeal
Myntra
Amazon
Shop Clues
Jabong
After Sorting : Ascending order
Amazon
Flipkart
Jabong
Myntra
PepperFry
Shop Clues
Snapdeal
2. Converting Ordered ArrayList to Sorted TreeSet in Descending-order
Syntax:
TreeSet<String> set = new TreeSet<String>(reverseCompLogic);
set.addAll(arrayList);
SortingArrayListInDescendingOrder.java
package in.bench.resources.java.collections;
import java.util.Comparator;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.TreeSet;
public class SortingArrayListInDescendingOrder {
public static void main(String[] args) {
// creating ArrayList object of type String
ArrayList<String> onlineMart = new ArrayList<String>();
// adding elements to ArrayList object
onlineMart.add("Flipkart");
onlineMart.add("PepperFry");
onlineMart.add("Snapdeal");
onlineMart.add("Myntra");
onlineMart.add("Amazon");
onlineMart.add("Shop Clues");
onlineMart.add("Jabong");
System.out.println("Before Sorting : Insertion order\n");
// Iterating using Iterator
Iterator<String> strIterator = onlineMart.iterator();
while(strIterator.hasNext()) {
System.out.println(strIterator.next());
}
// using Comparator constructor argument of TreeSet
TreeSet<String> ts = new TreeSet<String>(new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
// reverse sorting logic
return o2.compareTo(o1);
}
});
// add ArrayList elements to TreeSet
ts.addAll(onlineMart);
System.out.println("\n\n\nAfter Sorting : Descending order\n");
// Iterating using Iterator
Iterator<String> ascSorting = ts.iterator();
while(ascSorting.hasNext()) {
System.out.println(ascSorting.next());
}
}
}
Output:
Before Sorting : Insertion order
Flipkart
PepperFry
Snapdeal
Myntra
Amazon
Shop Clues
Jabong
After Sorting : Descending order
Snapdeal
Shop Clues
PepperFry
Myntra
Jabong
Flipkart
Amazon
Important points about ArrayList & TreeSet :
- ArrayList stores elements as per insertion-order
- TreeSet stores elements in sorted-order
References:
- https://docs.oracle.com/javase/tutorial/collections/intro/
- https://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html
- https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html
- https://docs.oracle.com/javase/tutorial/collections/interfaces/list.html
- https://docs.oracle.com/javase/tutorial/collections/implementations/list.html
- https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html
- https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
- https://docs.oracle.com/javase/tutorial/collections/interfaces/set.html
- https://docs.oracle.com/javase/7/docs/api/java/util/Set.html
- https://docs.oracle.com/javase/7/docs/api/java/util/class-use/HashSet.html
- https://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html
- http://docs.oracle.com/javase/6/docs/api/java/util/TreeSet.html
- https://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html
Happy Coding !!
Happy Learning !!