Java/J2EE and SOA (344 Blogs) Become a Certified Professional
Java/J2EE and SOA

Programming & Frameworks

Topics Covered
  • C Programming and Data Structures (16 Blogs)
  • Comprehensive Java Course (5 Blogs)
  • Java/J2EE and SOA (341 Blogs)
  • Spring Framework (8 Blogs)
SEE MORE Programming & Frameworks blog posts

How to Sort Array, ArrayList, String, List, Map and Set in Java?

Last updated on Jun 14,2021 29.7K Views

Aayushi Johari
A technophile with a passion for unraveling the intricate tapestry of the... A technophile with a passion for unraveling the intricate tapestry of the tech world. I've spent over a decade exploring the fascinating world of...
image not found!image not found!image not found!image not found!Copy Link!
17 / 29 Blog from Java Programs

Sorting is an essential part of any programming language. Java, no doubt is one of the best programming languages. It has various features that make it easy! This article will help you unfold everything about sorting in Java especially, sort Array, ArrayList, String, List, Map and Set in Java.

Below topics are covered in this sorting article:

Let’s begin. :-)

Sort Array in Java

Arrays in Java store one or more values of a specific data type and provide indexed access to store the same in a single variable. Let’s look at the below program to sort an array in Java in ascending order. However, ensure you have Java installed.

Sort Array in Java – Ascending Order

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package Edureka;
 
import java.util.Arrays;
 
public class SortArray
{
public static void main(String[] args)
{
int[] arr = {52,12,2,72,4}; // array of 5 elements
Arrays.sort(arr);
System.out.printf("Sorted arr[] = %s",
Arrays.toString(arr));
}
}

Output – Sorted arr[] = [2, 4, 12, 52, 72]

Sort Array in Java – Descending Order

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package Edureka;
 
import java.util.Arrays;
import java.util.Collections;
 
public class SortArray
{
public static void main(String[] args)
{
Integer[] arr = {52,12,2,72,4}; // used Integer[] instead of int as collections
Arrays.sort(arr, Collections.reverseOrder()); // reverseorder() for descending order
System.out.printf("Sorted arr[] = %s",
Arrays.toString(arr));
}
}

Output: Sorted arr[] = [72, 52, 12, 4, 2]

Note: In the above code, I have used Integer[] array instead of int because of collections. This is because reverseOrder() doesn’t support primitive types.

Many people confuse with the concept of arrays and ArrayList in Java. Below table may clear all your doubts.

ArrayArrayList

It is of fixed length

It is of variable-length (dynamic in size)

Supports only primitive data-type

Can add different object and data into the list

Does not support a duplicate addition

Allows addition of duplicate elements

Can traverse only in a forward direction

Can traverse in both forward and backward direction

Size cannot be modified dynamically

Size can be modified dynamically


I hope you are cleared with the difference, let’s move ahead and see how to sort ArrayList in Java.

Sort ArrayList in Java (String) 

Sorting ArrayList in Java can be easily done by using a simple sort() method. Refer the below code to sort ArrayList in Java.

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package Edureka;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.*;
 
public class sortingarraylist
{    
    public static void main(String args[])
        
            ArrayList<String>
                list = new ArrayList<String>();
       
         // Populate the ArrayList
         list.add("sorting");
         list.add("java");
         list.add("arraylist");
         list.add("in");
         System.out.println("Unsorted ArrayList: "
                               + list); // printed unsorted arraylist
         Collections.sort(list); // sort method for ascending order 
       
         System.out.println("Sorted ArrayList "
                               + "in Ascending order : "
                               + list); // print sorted arraylist
        }
    }

Output –

Unsorted ArrayList: [sorting, java, arraylist, in]
Sorted ArrayList in Ascending order : [arraylist, in, java, sorting]

Moving ahead with sorting in Java article, let’s see how you can sort integers. Let’s try to implement sorting using a different method i.e using Collections.sort() method.

Sort ArrayList in Java Using Collections (Integers)

You can sort Integer ArrayList using Collections.sort() method.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package Edureka;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.*;
 
public class SortingArrayList
{  
    public static void main(String args[]){
       ArrayList<Integer> arraylist = new ArrayList<Integer>();
       arraylist.add(48);
       arraylist.add(2);
       arraylist.add(19);
       arraylist.add(22);
       System.out.println("Before Sorting:"); // before sorting
       for(int counter: arraylist){
            System.out.println(counter);
        }
 
       Collections.sort(arraylist); // function to sort in ascending order
 
       System.out.println("After Sorting:"); // after sorting
       for(int counter: arraylist){
            System.out.println(counter);
        }
    }
}

Output –
Before Sorting:
48
2
19
22
After Sorting:
2
19
22
48

Sort String in Java

String in Java is immutable. There is no direct method to sort a string in Java. You can use Arrays, which has a method CharArray() that will create a char input string and using another method (Arrays.sort(char c[]) , we can easily sort.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package Edureka;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.*;
 
public class SortingString
{  
    public static String sortString(String inputString)
    {
        char Array1[] = inputString.toCharArray(); // converting input string to char array
            
        Arrays.sort(Array1);
           
        return new String(Array1); // return sorted string
    }
       
    public static void main(String[] args)
    {
        String inputString = "Edureka";
        String outputString = sortString(inputString);
           
        System.out.println("Input String : " + inputString);
        System.out.println("Output String : " + outputString);
    }
}

Output – 
Input String : Edureka
Output String : Eadekru

Sort a List In Java

To sort a list in Java, you can use Collections.sort() method. Refer the following code for more understanding:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package Edureka;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.*;
 
public class SortingList
{  
    public static void main(String[] args)
     
    {
        Integer[] digits = new Integer[] {12,56,89,27,22,4,88,65,36};
        List<Integer> digitsList = Arrays.asList(digits);
         
         
        Collections.sort(digitsList); // sorted list
          
        System.out.println("Sorted String :" +digitsList);
    }
}

Output: Sorted String :[4, 12, 22, 27, 36, 56, 65, 88, 89]

 

Sort a Map in Java

A Map in Java belongs to Java collection which contains key-value pair. Therefore, a Map can be sorted in two different ways:

  • Sort by key
  • Sort by value

Sort by Key:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package Edureka;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.*;
 
public class SortingMap
{  
    public static void main(String[] args)
     
    {
        HashMap<Integer, String> map = new HashMap<>();
         
        map.put(14, "Aayushi");
        map.put(2, "Rachit");
        map.put(30, "Amit");
        map.put(5, "Anamika");
          
        TreeMap<Integer, String> treeMap = new TreeMap<>(map);
          
        System.out.println(treeMap);
    }
}

Output: {2=Rachit, 5=Anamika, 14=Aayushi, 30=Amit}

Sort by Value:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package Edureka;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.*;
 
public class SortingMap 
{  
    public static void main(String[] args)
     
    {
        HashMap<Integer, String> unSortedMap = new HashMap<>();
     
    unSortedMap.put(14, "Aayushi");
    unSortedMap.put(20, "Rachit");
    unSortedMap.put(60, "Amit");
    unSortedMap.put(70, "Anamika");
      
    LinkedHashMap<Integer, String> sortedMap = new LinkedHashMap<>();
      
    unSortedMap.entrySet()
        .stream()
        .sorted(Map.Entry.comparingByValue())
        .forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue()));
      
    System.out.println(sortedMap);
    }
}

Output: {14=Aayushi, 60=Amit, 70=Anamika, 20=Rachit}

Moving ahead with sorting in Java, let’s pick up the last topic i.e sort a Set in Java.

Sort Set in Java

A Set in Java is an interface which extends Collections. It is an unordered collection of objects which does not store duplicate values. Now there is no direct method to sort a Set in Java. Now to sort a set, you have to convert a set to List and then use collections.sort() API and again convert back the list to a set. Refer the below code for more understanding:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package Edureka;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.*;
 
public class SortSet
{  
    public static void main(String[] args)
     
    {
        //Unsorted list
        HashSet<Integer> numbersSet = new LinkedHashSet<>(
                Arrays.asList(12,56,89,27,22,4,88,65,36) );
          
        List<Integer> numbersList = new ArrayList<Integer>(numbersSet);  //convert set to list
          
        //Sort the list
        Collections.sort(numbersList);
          
        numbersSet = new LinkedHashSet<>(numbersList);  //convert list to set
          
        //Print set to confirm
        System.out.println(numbersSet);
    }
}

 

Output: [4, 12, 22, 27, 36, 56, 65, 88, 89]

This brings us to the end of our blog on sorting in Java where you have learned how to sort Array, ArrayList, String, Map and Set in Java. I hope you found this blog informative and added value to your knowledge.

 

Make sure you practice as much as possible and revert your experience.  

Check out the Java Certification Training by Edureka, a trusted online learning company with a network of more than 250,000 satisfied learners spread across the globe. Edureka’s Java J2EE and SOA training and certification course is designed for students and professionals who want to be a Java Developer. The course is designed to give you a head start into Java programming and train you for both core and advanced Java concepts along with various Java frameworks like Hibernate & Spring.

Got a question for us? Please mention it in the comments section of this ‘Sorting in Java: Array, ArrayList, String, Map and Set in Java” and we will get back to you as soon as possible.

Comments
0 Comments

Join the discussion

Browse Categories

webinar REGISTER FOR FREE WEBINAR
+91
  • India (भारत)+91
  • United States+1
  • United Kingdom+44
  • Afghanistan (‫افغانستان‬‎)+93
  • Albania (Shqipëri)+355
  • Algeria (‫الجزائر‬‎)+213
  • Andorra+376
  • Angola+244
  • Argentina+54
  • Armenia (Հայաստան)+374
  • Aruba+297
  • Australia+61
  • Austria (Österreich)+43
  • Azerbaijan (Azərbaycan)+994
  • Bahamas+1242
  • Bahrain (‫البحرين‬‎)+973
  • Bangladesh (বাংলাদেশ)+880
  • Barbados+1246
  • Belarus (Беларусь)+375
  • Belgium (België)+32
  • Belize+501
  • Benin (Bénin)+229
  • Bermuda+1441
  • Bhutan (འབྲུག)+975
  • Bolivia+591
  • Bosnia and Herzegovina (Босна и Херцеговина)+387
  • Botswana+267
  • Brazil (Brasil)+55
  • British Indian Ocean Territory+246
  • British Virgin Islands+1284
  • Brunei+673
  • Bulgaria (България)+359
  • Burkina Faso+226
  • Burundi (Uburundi)+257
  • Cambodia (កម្ពុជា)+855
  • Cameroon (Cameroun)+237
  • Canada+1
  • Cape Verde (Kabu Verdi)+238
  • Caribbean Netherlands+599
  • Cayman Islands+1345
  • Central African Republic (République centrafricaine)+236
  • Chad (Tchad)+235
  • Chile+56
  • China (中国)+86
  • Christmas Island+61
  • Cocos (Keeling) Islands+61
  • Colombia+57
  • Comoros (‫جزر القمر‬‎)+269
  • Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)+243
  • Congo (Republic) (Congo-Brazzaville)+242
  • Cook Islands+682
  • Costa Rica+506
  • Côte d’Ivoire+225
  • Croatia (Hrvatska)+385
  • Cuba+53
  • Curaçao+599
  • Cyprus (Κύπρος)+357
  • Czech Republic (Česká republika)+420
  • Denmark (Danmark)+45
  • Djibouti+253
  • Dominican Republic (República Dominicana)+1
  • Ecuador+593
  • Egypt (‫مصر‬‎)+20
  • El Salvador+503
  • Equatorial Guinea (Guinea Ecuatorial)+240
  • Eritrea+291
  • Estonia (Eesti)+372
  • Ethiopia+251
  • Falkland Islands (Islas Malvinas)+500
  • Faroe Islands (Føroyar)+298
  • Fiji+679
  • Finland (Suomi)+358
  • France+33
  • French Guiana (Guyane française)+594
  • French Polynesia (Polynésie française)+689
  • Gabon+241
  • Gambia+220
  • Georgia (საქართველო)+995
  • Germany (Deutschland)+49
  • Ghana (Gaana)+233
  • Gibraltar+350
  • Greece (Ελλάδα)+30
  • Greenland (Kalaallit Nunaat)+299
  • Grenada+1473
  • Guadeloupe+590
  • Guatemala+502
  • Guernsey+44
  • Guinea (Guinée)+224
  • Guinea-Bissau (Guiné Bissau)+245
  • Guyana+592
  • Haiti+509
  • Honduras+504
  • Hong Kong (香港)+852
  • Hungary (Magyarország)+36
  • Iceland (Ísland)+354
  • India (भारत)+91
  • Indonesia+62
  • Iran (‫ایران‬‎)+98
  • Iraq (‫العراق‬‎)+964
  • Ireland+353
  • Isle of Man+44
  • Israel (‫ישראל‬‎)+972
  • Italy (Italia)+39
  • Jamaica+1876
  • Japan (日本)+81
  • Jersey+44
  • Jordan (‫الأردن‬‎)+962
  • Kazakhstan (Казахстан)+7
  • Kenya+254
  • Kiribati+686
  • Kosovo+383
  • Kuwait (‫الكويت‬‎)+965
  • Kyrgyzstan (Кыргызстан)+996
  • Laos (ລາວ)+856
  • Latvia (Latvija)+371
  • Lebanon (‫لبنان‬‎)+961
  • Lesotho+266
  • Liberia+231
  • Libya (‫ليبيا‬‎)+218
  • Liechtenstein+423
  • Lithuania (Lietuva)+370
  • Luxembourg+352
  • Macau (澳門)+853
  • Macedonia (FYROM) (Македонија)+389
  • Madagascar (Madagasikara)+261
  • Malawi+265
  • Malaysia+60
  • Maldives+960
  • Mali+223
  • Malta+356
  • Marshall Islands+692
  • Martinique+596
  • Mauritania (‫موريتانيا‬‎)+222
  • Mauritius (Moris)+230
  • Mayotte+262
  • Mexico (México)+52
  • Micronesia+691
  • Moldova (Republica Moldova)+373
  • Monaco+377
  • Mongolia (Монгол)+976
  • Montenegro (Crna Gora)+382
  • Morocco (‫المغرب‬‎)+212
  • Mozambique (Moçambique)+258
  • Myanmar (Burma) (မြန်မာ)+95
  • Namibia (Namibië)+264
  • Nauru+674
  • Nepal (नेपाल)+977
  • Netherlands (Nederland)+31
  • New Caledonia (Nouvelle-Calédonie)+687
  • New Zealand+64
  • Nicaragua+505
  • Niger (Nijar)+227
  • Nigeria+234
  • Niue+683
  • Norfolk Island+672
  • North Korea (조선 민주주의 인민 공화국)+850
  • Norway (Norge)+47
  • Oman (‫عُمان‬‎)+968
  • Pakistan (‫پاکستان‬‎)+92
  • Palau+680
  • Palestine (‫فلسطين‬‎)+970
  • Panama (Panamá)+507
  • Papua New Guinea+675
  • Paraguay+595
  • Peru (Perú)+51
  • Philippines+63
  • Poland (Polska)+48
  • Portugal+351
  • Puerto Rico+1
  • Qatar (‫قطر‬‎)+974
  • Réunion (La Réunion)+262
  • Romania (România)+40
  • Russia (Россия)+7
  • Rwanda+250
  • Saint Barthélemy+590
  • Saint Helena+290
  • Saint Martin (Saint-Martin (partie française))+590
  • Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)+508
  • Samoa+685
  • San Marino+378
  • São Tomé and Príncipe (São Tomé e Príncipe)+239
  • Saudi Arabia (‫المملكة العربية السعودية‬‎)+966
  • Senegal (Sénégal)+221
  • Serbia (Србија)+381
  • Seychelles+248
  • Sierra Leone+232
  • Singapore+65
  • Sint Maarten+1721
  • Slovakia (Slovensko)+421
  • Slovenia (Slovenija)+386
  • Solomon Islands+677
  • Somalia (Soomaaliya)+252
  • South Africa+27
  • South Korea (대한민국)+82
  • South Sudan (‫جنوب السودان‬‎)+211
  • Spain (España)+34
  • Sri Lanka (ශ්‍රී ලංකාව)+94
  • Sudan (‫السودان‬‎)+249
  • Suriname+597
  • Svalbard and Jan Mayen+47
  • Swaziland+268
  • Sweden (Sverige)+46
  • Switzerland (Schweiz)+41
  • Syria (‫سوريا‬‎)+963
  • Taiwan (台灣)+886
  • Tajikistan+992
  • Tanzania+255
  • Thailand (ไทย)+66
  • Timor-Leste+670
  • Togo+228
  • Tokelau+690
  • Tonga+676
  • Tunisia (‫تونس‬‎)+216
  • Turkey (Türkiye)+90
  • Turkmenistan+993
  • Tuvalu+688
  • Uganda+256
  • Ukraine (Україна)+380
  • United Arab Emirates (‫الإمارات العربية المتحدة‬‎)+971
  • United Kingdom+44
  • United States+1
  • Uruguay+598
  • Uzbekistan (Oʻzbekiston)+998
  • Vanuatu+678
  • Vatican City (Città del Vaticano)+39
  • Venezuela+58
  • Vietnam (Việt Nam)+84
  • Wallis and Futuna (Wallis-et-Futuna)+681
  • Western Sahara (‫الصحراء الغربية‬‎)+212
  • Yemen (‫اليمن‬‎)+967
  • Zambia+260
  • Zimbabwe+263
  • Åland Islands+358
webinar_success Thank you for registering Join Edureka Meetup community for 100+ Free Webinars each month JOIN MEETUP GROUP
image not found!
image not found!

How to Sort Array, ArrayList, String, List, Map and Set in Java?

edureka.co

preload imagepreload image