Sorting collection of String and StringBuffer in Java
Last Updated :
09 Nov, 2020
Sorting a collection of objects can be done in two ways:
Read more about Comparable and Comparator
For sorted Collection we can use below collections:
In case of String, sorting will be done automatically in natural order.
Java
public final class String
extends Object
implements Serializable,
Comparable, CharSequence
|
Output:
[Harish, Raja, Ram, Sohan]
Java
public final class StringBuffer
extends Object
implements Serializable,
CharSequence
|
Output
[Harish, Raja, Ram, Sohan]
String class implements Comparable interface whereas StringBuffer and StringBuilder classes do not implement Comparable interface. See below signatures of String, StringBuffer and StringBuilder classes:
Java
public final class StringBuilder
extends Object
implements Serializable,
CharSequence
|
Java
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
public class Test implements Comparator<StringBuffer> {
@Override public int compare(StringBuffer s1, StringBuffer s2)
{
return s1.toString().compareTo(s2.toString());
}
public static void main(String[] args)
{
Set<StringBuffer> str = new TreeSet<>( new Test());
str.add( new StringBuffer( "Sohan" ));
str.add( new StringBuffer( "Raja" ));
str.add( new StringBuffer( "Harish" ));
str.add( new StringBuffer( "Ram" ));
System.out.println(str);
}
}
|
There are many ways of sorting StringBuffer, StringBuilder classes. Some of the ways are given below:
- By implementing Comparator interface
- By converting StringBuffer to String using StringBuffer.toString() method
Java
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
public class Test implements Comparator<StringBuffer> {
@Override public int compare(StringBuffer s1, StringBuffer s2)
{
return s1.toString().compareTo(s2.toString());
}
public static void main(String[] args)
{
Set<StringBuffer> str = new TreeSet<>( new Test());
str.add( new StringBuffer( "Sohan" ));
str.add( new StringBuffer( "Raja" ));
str.add( new StringBuffer( "Harish" ));
str.add( new StringBuffer( "Ram" ));
System.out.println(str);
}
}
|
Output:
[Harish, Raja, Ram, Sohan]
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...