Skip to content

learn-co-curriculum/java-mod-2-array-sort

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Array Sort

Learning Goals

  • Learn about the Arrays class
  • Learn about sorting an array

Introduction

Now that we have learned about arrays and what they are, let's learn how to sort them! But first we need to talk about a utility class to help us. Let's start by looking at the Arrays class!

Arrays Class

Similar to our Scanner class, there is another class for arrays called Arrays! It is in the same package as the Scanner class, the java.util package. This class has a bunch of methods to help us with our arrays - such as an equals() method to help us determine if two arrays are equal and a fill() method to fill an array with certain values.

To make use of some of these utility methods that Java comes with, we will need to import it:

import java.util.Arrays;

The above import statement should look similar to how we imported the Scanner class when we covered User Interaction lesson in the last module. But unlike the Scanner class when we had to declare an instance to use it, the Arrays class is full of static methods. So we won't need to declare an instance of the Arrays class - instead we can just use the methods directly:

int[] numbers = new int[10];
Arrays.fill(numbers, 18);

As a review, static methods are methods that can be accessed directly on the class without needing an instance of the class to be created. Hence, why we can call the fill() method to fill an array with a certain value as we did in the code above. The code above will take the array numbers and fill it with the integer value of 18. Therefore, each int in the array will now have a value of 18.

But let us now focus on the method we want to talk about - the sort() method!

Sorting an Array

Say we have an array that holds 10 integer values, and we want to sort them in ascending order (minimum to maximum). We could make use of everything we have learned thus far: use conditional statements, loops, and the Math class' min() and max() methods. But luckily for us, Java has already figured out that programmers may want to sort arrays. This is why we have the sort() method!

The sort() method is a static method within the Arrays class. So to use it, we will need to import it as we saw above. But how do we use it? Let's look at the following example:

import java.util.Arrays;

public class Example {
    public static void main(String[] args) {
        int[] numbers = {99, -10, 100123, 18, -978, 5623, 463, -9, 287, 49};
        Arrays.sort(numbers);
        System.out.print("The numbers array AFTER sort: ");
        for (int num : numbers) {
            System.out.print(num + " ");
        }
    }
}

As we can see from the above example, we can use the sort() method by calling it directly from the Arrays class and passing it the array as the parameter. It will then sort the array numbers for us in ascending order. When we run this code, it will produce the following:

The numbers array AFTER sort: -978 -10 -9 18 49 99 287 463 5623 100123

The sort() method also works with other primitive types; such as double, float, long, byte, and char:

import java.util.Arrays;

public class Example {
    public static void main(String[] args) {
        double[] numbers = {9.9, -10.0, 100.123, 1.8, -97.8, 5.623, 46.3, -9.0, 2.87, 0.49};
        Arrays.sort(numbers);
        System.out.print("The numbers array AFTER sort: ");
        for (double num: numbers) {
            System.out.print(num + " ");
        }
    }
}

The above will produce the following output:

The numbers array AFTER sort: -97.8 -10.0 -9.0 0.49 1.8 2.87 5.623 9.9 46.3 100.123

We can also sort reference types using the sort() method by their natural ordering. For example, a String type will sort alphabetically:

import java.util.Arrays;

public class Example {
    public static void main(String[] args) {
        String[] names = {"Leslie", "Ann", "Ron", "Ben", "Tom", "April", "Andy", "Chris", "Jerry", "Donna"};
        Arrays.sort(names);
        System.out.print("The names array AFTER sort: ");
        for (String name : names) {
            System.out.print(name + " ");
        }
    }
}

By passing in a String[] to the sort() method, the following output of the above example would look like this:

The names array AFTER sort: Andy Ann April Ben Chris Donna Jerry Leslie Ron Tom

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published