How To Sort An Array In Descending Order In Java? Example Tutorial
Maybe your like
Pages
- Home
- core java
- spring
- online courses
- thread
- java 8
- coding
- sql
- books
- oop
- interview
- certification
- free resources
- best
How to sort Object Array in Descending Order
First, let's see the example of sorting an object array into ascending order. Then we'll see how to sort a primitive array in descending order. In order to sort a reference type array-like String array, Integer array or Employee array, you need to pass the Array.sort() method a reverse Comparator. Fortunately, you don't need to code it yourself, you can use Collections.reverseOrder(Comparator comp) to get a reverse order Comparator. Just pass your Comparator to this method and it will return the opposite order Comparator. If you are using a Comparator method to sort in the natural order, you can also use the overloaded Collection.reverseOrder() method. It returns a Comparator which sorts in the opposite of natural order. In fact, this is the one you will be using most of the time. Here is an example of sorting Integer arrays in descending order: Integer[] cubes = new Integer[] { 8, 27, 64, 125, 256 }; Arrays.sort(cubes, Collections.reverseOrder()); Now the cubes array will be {256, 125, 64, 27,8}, you can see the order is reversed and elements are sorted in decreasing order. Sometimes, you use your own customized Comparator like a comparator we have used to sort Employee by their salary. If you are using that one then you need to call the Array.sort() method as follows Arrays.sort(emp[], Collections.sort(SALARY_CMP)); where SALARY_CPM is the Comparator that orders employees by their salary. You can see the Java Fundamentals: The Java Language course on Pluralsight to learn more about Java and how to do basic stuff like sorting and searching in Java.
How to sort a Primitive Array in Reverse Order
Now, let's see how to sort a primitive array like int[], long[], float[], or char[] in descending order. As I told you before, there are no Arrays.sort() method which can sort the array in the reverse order. Many programmers make the mistake of calling the above Array.sort() method as follows: int[] squares = { 4, 25, 9, 36, 49 }; Arrays.sort(squares, Collections.reverseOrder()); This is a compile-time error "The method sort(int[]) in the type Arrays is not applicable for the arguments (int[], Comparator<Object>)" because there is no such method in the java.util.Arrays class. The only way to sort a primitive array in descending order is first to sort it in ascending order and then reverse the array in place as shown on the link. Since in-place reversal is an efficient algorithm and doesn't require extra memory, you can use it to sort and reverse large arrays as well. You can also see a comprehensive course on data structure and algorithms like Data Structures and Algorithms: Deep Dive Using Java to learn more about efficient sorting algorithms like O(n) sorting algorithms like Bucket sort and Counting Sort in Java.
Java Program to Sort an Array in Decreasing Order
Here is a complete Java program to sort an object array and a primitive array in the reverse order in Java. As I told it's easy to sort a reference array to decreasing order because you can supply a reverse Comparator by using Collections.reverseOrder() method, but it's tricky to sort the primitive array in reverse order. The only way to achieve that is first by sorting the array in increasing order and then reverse the array in place and that is what I have done in this example. I have used the Arrays.sort() method to sort a primitive array in ascending order and then written a reverse() method to reverse the array in place. Since there are eight primitive types in Java, you need to write separate reverse methods to reverse a byte array, long array, or float array. import java.util.Arrays; import java.util.Collections; /* * Java Program to sort the array in descending order. * Object array can be sorted in reverse order by using * Array.sort(array, Comparator) method but primitive * array e.g. int[] or char[] can only be sorted * in ascending order. For opposite order, just * reverse the array. * */ public class ArraySorter { public static void main(String[] args) { // sorting Integer array in descending order Integer[] cubes = new Integer[] { 8, 27, 64, 125, 256 }; System.out.println("Integer array before sorting : " + Arrays.toString(cubes)); System.out.println("sorting array in descending order"); Arrays.sort(cubes, Collections.reverseOrder()); System.out.println("array after sorted in reverse order: " + Arrays.toString(cubes)); // sorting primitive array int[] in descending order int[] squares = { 4, 25, 9, 36, 49 }; System.out.println("int[] array before sorting : " + Arrays.toString(squares)); System.out.println("sorting array in ascending order"); Arrays.sort(squares, Collections.reverseOrder()); System.out.println("reversing array in place"); reverse(squares); System.out.println("Sorted array in descending order : " + Arrays.toString(squares)); } /** * reverse given array in place * * @param input */ public static void reverse(int[] input) { int last = input.length - 1; int middle = input.length / 2; for (int i = 0; i <= middle; i++) { int temp = input[i]; input[i] = input[last - i]; input[last - i] = temp; } } } Output Integer array before sorting : [8, 27, 64, 125, 256] sorting array in descending order array after sorted in reverse order: [256, 125, 64, 27, 8] int[] array before sorting : [4, 25, 9, 36, 49] sorting an array in ascending order reversing array in place Sorted array in descending order : [49, 36, 25, 9, 4] That's all about how to sort an array in descending order in Java. You can use a reverse Comparator or Collections.reverseOrder() method to sort an object array in descending order e.g. String array, Integer array, or Double array. The Arrays.sort() method is overloaded to accept a Comparator, which can also be a reverse Comparator. Now, to sort a primitive array in decreasing order, there is no direct way. You first need to sort it in ascending or normal order and then reverse the array in place. The in-place algorithm is an efficient way to reverse an array and doesn't require extra memory, so it can also be used to reverse a large array. Other Java array tutorials you may like:- How to declare and initialize a two-dimensional array in Java? (solution)
- How to convert an Array to String in Java? (solution)
- My favorite free courses to learn data Structure in-depth (FreeCodeCamp)
- How to test if an array contains a value in Java? (solution)
- 22 Array concepts Interview Questions in Java? (answer)
- How to print elements of an array in Java? (example)
- 100+ Data Structure Coding Problems from Interviews (questions)
- What is the difference between array and ArrayList in Java? (answer)
- How to loop over an array in Java? (solution)
- How to find duplicate elements in a Java array? (answer)
- How to remove duplicate objects from an array in Java? (answer)
- 50+ Data Structure and Algorithms Problems from Interviews (questions)
- Iterative PreOrder traversal in a binary tree (solution)
- How to count the number of leaf nodes in a given binary tree in Java? (solution)
- 10 Free Data Structure and Algorithm Courses for Programmers (courses)
- 10 Free Courses to Learn Java Programming (courses)
9 comments:
PatrickMarch 9, 2018 at 4:03 AMThanks for this info but you have a bug in your reverse() routine.for (int i = 0; i <= middle; i++) {That should be i < middle.Otherwise you swap the middle two items twice when the length is even.
ReplyDeleteReplies- Reply
AnonymousApril 22, 2018 at 5:59 PMArrays.sort(squares, Collections.reverseOrder()); - this does not work
ReplyDeleteReplies
javin paulApril 22, 2018 at 6:02 PMHi, which version of Java you are running?
DeleteReplies- Reply
Shivanshu OliyhanJanuary 27, 2019 at 4:28 AMJava jdk 1.8
DeleteReplies- Reply
Reply
AnonymousApril 6, 2020 at 9:15 AMBtw, the following does not work>> Arrays.sort(squares, Collections.reverseOrder());
ReplyDeleteReplies
javin paulApril 9, 2020 at 11:05 PMHello @Anonymous, what error are you getting, the code looks great to sort array contents provide elements of Square implement Comparable.
DeleteReplies- Reply
Isaac ParkApril 15, 2020 at 1:05 PMI second it. Arrays.sort(squares, Collections.reverseOrder()); does not work.int is primitive type.You need collection in order for you to work.You need to define you integer array such that Integer[] squares = Integer[] { 4, 25, 9, 36, 49 };
DeleteReplies- Reply
Reply
Isaac ParkApril 15, 2020 at 1:01 PMI double confirm that Arrays.sort(squares, Collections.reverseOrder());int is primitive data type. you need collection type in order to Collections.reverOrder() to work. it will work if you define your array with Integer not int.Integer[] squares = new Integer[] { 4, 25, 9, 36, 49 };
ReplyDeleteReplies
javin paulApril 17, 2020 at 3:14 AMThanks Isaas, I got your point, thanks for looking at it, but I have made it clear in the article that as well.This is a compile-time error "The method sort(int[]) in the type Arrays is not applicable for the arguments (int[], Comparator<Object>)" because there is no such method in the java.util.Arrays class.
DeleteReplies- Reply
Reply
Feel free to comment, ask questions if you have any doubt.
Newer Post Older Post Home Subscribe to: Post Comments (Atom)Recommended Courses
- best python courses
- best java courses
- system design courses
- best spring courses
- best hibernate courses
- best design pattern courses
- best Linux courses
- best JavaScript courses
- best data structure and algorithms courses
- Best Multithreading Courses
- best MERN stack courses
- Best Git courses
- Best Microservice Courses
- Best DevOps Courses
- best MEAN stack Courses
- free Java courses
- free DSA courses
- free sql courses
- free Linux courses
- Free Docker courses
- free JUnit courses
Array Tutorials
- array - copy
- array - tutorial
- array - add/remove element
- array - linked list
- array - reverse
- array - sorting
- array - sum
- array - binary search
- array - vector
- array - remove
- array - reverse in place
- array - to list
- array - initialization
- array - insertion sort
- array - to string
- array - example
- array - data structure
- array - compare
- array - liner search
Categories
- .NET
- abstract class
- Affiliate marketing
- After Effects
- Agile
- AI Tools
- Amazon Web Service
- android
- Angular
- Anonymous class
- Ansible
- apache camel
- Apache kafka
- Apache spark
- app development
- array
- ArrayList
- Artificial Intelligence
- automation
- aws
- aws certification
- Azure Certifications
- backend development
- bash
- basics
- beginners
- best of java67
- best practices
- Big Data
- binary tree
- bit manipulation
- black friday deals
- Blockchain
- BlockingDeque
- books
- Bootstrap
- business analysis
- ByteByteGo
- C programming
- C++
- Career
- ChatGPT
- Chef
- cloud certification
- Cloud Computing
- Code Example
- Code Review
- codecademy
- Codemia
- CodeRabbit
- coding
- coding exercise
- Coding Interview
- Coding Problems
- Comparator
- computer science
- Computer Vision
- concurrency tutorial
- ConcurrentHashMap
- core java
- core java interview question answer
- course review
- Coursera
- courses
- crontab
- CSS
- Cyber Monday
- Cyber Security
- Data Analysis
- data science
- data structure and algorithm
- Data Visualization
- database
- datacamp
- date and time
- debugging
- deep learning
- default methods
- design pattern
- DevOps
- DevSecOps
- Distributed Systems
- Django
- docker
- double
- Drawing
- dyanmic programming
- dynamic Programming
- eBooks
- Eclipse
- EJB
- enum
- equals
- error and exception
- Ethical hacking
- Excel
- exception
- Exponent
- expressjs
- FAANG
- Figma
- Firebase
- flatmap
- float
- Flutter
- free resources
- freelancing
- Frontend Masters
- fun
- Fundamental
- fundamentals
- Game development
- garbage collection
- general
- Generics
- gifts
- git and github
- golang
- Google Cloud Certification
- Google Cloud Platform
- Gradle
- grails
- graph
- graphic design
- grep
- Groovy
- gRPC
- Hadoop
- HashMap
- HashSet
- haskell
- Hibernate
- Hibernate interview Question
- homework
- HTML
- HTTP
- HttpClient
- i
- interface
- Internet of Things (IoT)
- interview
- interview questions
- IT Certification
- J2EE
- Jackson
- java
- Java 5 tutorial
- java 7
- Java 8
- java 9
- java basics
- Java Certification
- Java collection tutorial
- java concurrency tutorial
- java design pattern
- Java Enum
- Java file tutorials
- Java Functional Programming
- Java Installation Guide
- Java Interview Question
- Java interview questions
- Java IO interview question
- java io tutorial
- java map tutorials
- java modules
- Java Multithreading Tutorial
- Java networking tutorial
- Java Operator tutorial
- Java programming Tutorial
- Java String tutorial
- Java7
- JavaScript
- JavaScript Interview Question
- JavaScript Tutorial
- JDBC
- JEE Interview Questions
- Jenkins
- JMS
- JPA
- jQuery
- JSON
- JSP
- JSP Interview Question
- JSTL
- JUnit
- JVM
- Keras
- keystore
- Kotlin
- kubernetes
- lambda expression
- Laraval
- learning
- linked list
- Linux
- Log4j
- logging
- Lombok
- LSAT
- Mac OS X
- machine learning
- Mathematics
- Matlab
- Maven
- MERN stack
- Messaging
- Microservices
- Microsoft
- Microsoft Azure Platform
- Microsoft Excel
- Microsoft Power BI
- Mockito
- MongoDB
- MysQL
- MySQL tutorial example
- nested class
- neural network
- Next.js
- NFT
- NLP
- Node.js
- nslookup
- object oriented programming
- OCAJP
- OCMJEA
- OCPJP
- offers
- Oracle
- Perl
- personal development
- Photoshop
- PHP
- pluralsight
- PostgerSQL
- postman
- Powerpoint
- programmers
- programming
- programming problems
- Project Management
- projects
- Prompt Engineering
- Python
- Pytorch
- Quarkus
- questions
- Queue
- R programming
- React
- React Hooks
- react native
- Record
- Recursion
- Redux
- regular expression example
- REST tutorials
- Review
- RoadMap
- Ruby
- Salesforce
- SAT
- Scala
- Scala Interview Questions
- Scanner
- scripting
- Scrum
- Scrum Master Certification
- Selenium
- SEO
- Serialization
- Servlet
- Servlet Interview Questions
- Set
- shell scripting
- smart contracts
- Snowflake SnowPro Certification
- soft link
- soft skills
- software architecture
- Solaris
- Solidity
- Sorting Algorithm
- Spark
- spring boot
- Spring Certification
- spring cloud
- spring data jpa
- spring framework
- spring interview question
- spring mvc
- spring security
- sql
- SQL interview Question
- SQL Joins
- SQL SERVER
- ssl
- Static
- Statistics
- Stream
- String
- Struts
- Swift
- swing
- switch case
- system design
- Tableau
- Tailwind
- TensorFlow
- ternary operator
- testing
- thread
- thread interview questions
- Time series analysis
- Tips
- tomcat
- tools
- tree
- TreeMap
- troubleshooting
- TypeScript
- Udacity
- Udemy
- UI and UX Design
- UML
- unit testing
- Unity 3D
- Unix
- unreal engine
- Video Editing
- Vuejs
- web design
- web development
- web scrapping
- Web Service
- Whizlabs
- Wix
- xml
- YAML
- ZTM Academy
Best System Design and Coding Interview Resources
System Design & Interview Prep
- ByteByteGo Lifetime Plan (50% OFF)
- Codemia Lifetime Plan (60% OFF)
- Exponent Annual Plan (70% OFF)
- Educative Premium Plus (55% OFF)
- DesignGurus All Course Bundle (55% OFF)
- Everything Java Interview Bundle (50% OFF)
- 101 Blockchain (50% OFF)
- Vlad Mihalcea's High Performance Bundle (50% OFF)
- Javarevisited Substack Subscription (50% OFF)
- Head First Software Architecture (Book)
Search This Blog
Best Online Learning Resources and Platforms
- Coursera Plus (40% OFF)
- Datacamp Sale (50% OFF)
- AlgoMonster Lifetime Plan (50% OFF)
- Udemy Sale (80% OFF)
- Baeldung (33% OFF)
- LabEx Sale (50% OFF)
- Codecademy Sale (60% OFF)
- Udacity Sale (50% OFF)
- ZTM Academy Sale (66% OFF)
- Frontend Masters Deal
- Whizlabs Deal (70% OFF)
Javarevisited
Loading...Spring Interview Prep List
- Spring Boot Interview questions
- Spring Cloud Interview questions
- Spring MVC Interview Questions
- Microservices Interview questions
- 10 Spring MVC annotations
- Spring Boot Courses
- Spring Framework Courses
Subscribe for Discounts and Updates
FollowInterview Questions
- core java interview questions
- SQL interview questions
- data structure interview question
- coding interview questions
- java collection interview questions
- java design pattern interview questions
- thread interview questions
- hibernate interview questions
- j2ee interview questions
- Spring Interview Questions
- object oriented programming questions
Followers
Blog Archive
- ► 2024 (192)
- ► December (30)
- ► October (32)
- ► September (31)
- ► August (12)
- ► July (3)
- ► June (2)
- ► May (9)
- ► April (3)
- ► March (28)
- ► February (3)
- ► January (39)
- ► 2023 (380)
- ► December (1)
- ► November (2)
- ► October (4)
- ► September (154)
- ► August (12)
- ► July (23)
- ► May (9)
- ► April (116)
- ► March (15)
- ► February (35)
- ► January (9)
- ► 2022 (164)
- ► December (18)
- ► October (1)
- ► September (1)
- ► August (45)
- ► July (27)
- ► June (11)
- ► May (19)
- ► April (16)
- ► March (12)
- ► February (6)
- ► January (8)
- ► 2021 (104)
- ► December (6)
- ► November (2)
- ► October (13)
- ► September (18)
- ► August (31)
- ► July (34)
- ► 2020 (10)
- ► August (2)
- ► July (1)
- ► June (1)
- ► April (3)
- ► March (1)
- ► February (2)
- ► 2019 (9)
- ► December (1)
- ► November (1)
- ► October (1)
- ► September (1)
- ► July (1)
- ► June (1)
- ► April (3)
- ► 2018 (9)
- ► November (1)
- ► April (8)
- ► 2017 (4)
- ► October (1)
- ► September (2)
- ► April (1)
- ► 2015 (8)
- ► July (1)
- ► June (1)
- ► May (1)
- ► February (5)
- ► 2012 (1)
- ► September (1)
Privacy
- Privacy Policy
- Terms & Conditions
Popular Posts
- 17 Free Java Programing Books for Beginners in 2025 - download, pdf and HTML
- How to fix "illegal start of expression" error in Java? Example
- Top 10 Websites to Learn JavaScript Coding for FREE in 2025 - Best of Lot
- 5 Examples of Formatting Float or Double Numbers to String in Java
- Top 10 Frequently asked SQL Query Interview Questions Answers
Subscribe
Get new posts by email:
SubscribeTag » How To Sort An Array In Java
-
rt() In Java With Examples - GeeksforGeeks
-
How To Sort An Array In Java - Javatpoint
-
How To Sort An Array In Java - Tutorial With Examples
-
How To Sort An Array In Java - Video & Lesson Transcript
-
What Is Sort Array In Java: Everything You Need To Know | Simplilearn
-
Java Sort Array – How To Reverse An Array In Ascending Or ...
-
Sort An Array In Java - Stack Overflow
-
JavaScript Sorting Arrays - W3Schools
-
How To Sort An Array In Java Without Using The Sort() Method
-
How To Sort An Array In Java - Linux Hint
-
How To Use The rt() Method In Java
-
Sort An Array - LeetCode
-
Arrays (Java Platform SE 7 ) - Oracle Help Center
-
How To Sort An Array In Java - Code |Interviewkickstart
Patrick
Anonymous
Shivanshu Oliyhan