Home Java javaTutorial How does Arrays.sort() method in Java sort arrays by custom comparator?

How does Arrays.sort() method in Java sort arrays by custom comparator?

Nov 18, 2023 am 11:36 AM
sort Custom comparator arraysort() method

How does Arrays.sort() method in Java sort arrays by custom comparator?

How does the Arrays.sort() method in Java sort an array according to a custom comparator?

In Java, the Arrays.sort() method is a very useful method for sorting arrays. By default, this method sorts in ascending order. But sometimes, we need to sort the array according to our own defined rules. At this time, you need to use a custom comparator (Comparator).

A custom comparator is a class that implements the Comparator interface, which can define comparison rules according to specific needs. Custom comparators can sort objects of any type, including basic types and custom types.

Next, I will introduce how to use a custom comparator to sort the Arrays.sort() method in Java and provide some sample code to illustrate.

  1. How to define a custom comparator?

To define a custom comparator, you only need to implement the Comparator interface and override the compare method. The compare method has two parameters. We need to define comparison rules in this method. The comparison rules have the following situations:

  • obj1
  • obj1 == obj2, returns 0;
  • obj1 > obj2, returns a positive integer;

The key code is as follows:

1

2

3

4

5

6

7

public class MyComparator implements Comparator<T> {

    @Override

    public int compare(T o1, T o2) {

        // 你的自定义比较规则

        return 0;

    }

}

Copy after login
  1. How to use custom comparison to sort an array?

The Arrays.sort() method has multiple overloaded versions, one of which accepts a custom comparator. We can use our own defined comparator as the second parameter of this method, so that we can sort the array according to our own rules.

The key code is as follows:

1

public static <T> void sort(T[] a, Comparator<? super T> c)

Copy after login

Among them, T[] a represents the array to be sorted, Comparator c represents the comparator.

  1. Sample code

Now, let's look at a specific example. Suppose we have a Student class. This class contains two member variables: name and age. Now, if we want to sort the Student array from smallest to largest age, we need to define a custom comparator. The sample code is as follows:

1

2

3

4

5

6

public class StudentComparator implements Comparator<Student> {

    @Override

    public int compare(Student o1, Student o2) {

        return o1.age - o2.age;

    }

}

Copy after login

In the above code, we define a StudentComparator class, which implements the Comparator interface and overrides the compare method. In the compare method, we focus the comparison on age. If o1's age is less than o2's age, a negative integer is returned; if o1's age is equal to o2's age, 0 is returned; if o1's age is greater than o2's age, a positive integer is returned.

Next, we can use the Arrays.sort() method to sort the Student array according to the rules we define.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

public class Main {

    public static void main(String[] args) {

        Student[] students = new Student[3];

        students[0] = new Student("Tom", 20);

        students[1] = new Student("Jack", 18);

        students[2] = new Student("Lucy", 22);

         

        Arrays.sort(students, new StudentComparator());

         

        for (Student student : students) {

            System.out.println(student.name + " " + student.age);

        }

    }

}

Copy after login

The output result is:

1

2

3

Jack 18

Tom 20

Lucy 22

Copy after login

It can be seen from the result that according to the rules we defined, the Student array is sorted from small to large by age.

  1. Summary

The Arrays.sort() method is a very useful method that can sort any type of array. When you need to sort the array according to your own defined rules, you only need to implement the Comparator interface and rewrite the compare method. The specific implementation process is as mentioned above, I hope it will be helpful to everyone.

The above is the detailed content of How does Arrays.sort() method in Java sort arrays by custom comparator?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to sort photos by date taken in Windows 11/10 How to sort photos by date taken in Windows 11/10 Feb 19, 2024 pm 08:45 PM

This article will introduce how to sort pictures according to shooting date in Windows 11/10, and also discuss what to do if Windows does not sort pictures by date. In Windows systems, organizing photos properly is crucial to making it easy to find image files. Users can manage folders containing photos based on different sorting methods such as date, size, and name. In addition, you can set ascending or descending order as needed to organize files more flexibly. How to Sort Photos by Date Taken in Windows 11/10 To sort photos by date taken in Windows, follow these steps: Open Pictures, Desktop, or any folder where you place photos In the Ribbon menu, click

How to sort emails by sender, subject, date, category, size in Outlook How to sort emails by sender, subject, date, category, size in Outlook Feb 19, 2024 am 10:48 AM

Outlook offers many settings and features to help you manage your work more efficiently. One of them is the sorting option that allows you to categorize your emails according to your needs. In this tutorial, we will learn how to use Outlook's sorting feature to organize emails based on criteria such as sender, subject, date, category, or size. This will make it easier for you to process and find important information, making you more productive. Microsoft Outlook is a powerful application that makes it easy to centrally manage your email and calendar schedules. You can easily send, receive, and organize email, while built-in calendar functionality makes it easy to keep track of your upcoming events and appointments. How to be in Outloo

Filtering and sorting XML data using Python Filtering and sorting XML data using Python Aug 07, 2023 pm 04:17 PM

Implementing filtering and sorting of XML data using Python Introduction: XML is a commonly used data exchange format that stores data in the form of tags and attributes. When processing XML data, we often need to filter and sort the data. Python provides many useful tools and libraries to process XML data. This article will introduce how to use Python to filter and sort XML data. Reading the XML file Before we begin, we need to read the XML file. Python has many XML processing libraries,

PHP development: How to implement table data sorting and paging functions PHP development: How to implement table data sorting and paging functions Sep 20, 2023 am 11:28 AM

PHP development: How to implement table data sorting and paging functions In web development, processing large amounts of data is a common task. For tables that need to display a large amount of data, it is usually necessary to implement data sorting and paging functions to provide a good user experience and optimize system performance. This article will introduce how to use PHP to implement the sorting and paging functions of table data, and give specific code examples. The sorting function implements the sorting function in the table, allowing users to sort in ascending or descending order according to different fields. The following is an implementation form

How does Arrays.sort() method in Java sort arrays by custom comparator? How does Arrays.sort() method in Java sort arrays by custom comparator? Nov 18, 2023 am 11:36 AM

How does Arrays.sort() method in Java sort arrays by custom comparator? In Java, the Arrays.sort() method is a very useful method for sorting arrays. By default, this method sorts in ascending order. But sometimes, we need to sort the array according to our own defined rules. At this time, you need to use a custom comparator (Comparator). A custom comparator is a class that implements the Comparator interface.

C++ program: rearrange the position of words in alphabetical order C++ program: rearrange the position of words in alphabetical order Sep 01, 2023 pm 11:37 PM

In this problem, a string is given as input and we have to sort the words appearing in the string in lexicographic order. To do this, we assign an index starting from 1 to each word in the string (separated by spaces) and get the output in the form of sorted indices. String={"Hello","World"}"Hello"=1 "World"=2 Since the words in the input string are in lexicographic order, the output will print "12". Let's look at some input/result scenarios - Assuming all words in the input string are the same, let's look at the results - Input:{"hello","hello","hello"}Result:3 Result obtained

How to sort WPS scores How to sort WPS scores Mar 20, 2024 am 11:28 AM

In our work, we often use wps software. There are many ways to process data in wps software, and the functions are also very powerful. We often use functions to find averages, summaries, etc. It can be said that as long as The methods that can be used for statistical data have been prepared for everyone in the WPS software library. Below we will introduce the steps of how to sort the scores in WPS. After reading this, you can learn from the experience. 1. First open the table that needs to be ranked. As shown below. 2. Then enter the formula =rank(B2, B2: B5, 0), and be sure to enter 0. As shown below. 3. After entering the formula, press the F4 key on the computer keyboard. This step is to change the relative reference into an absolute reference.

How to reorder multiple columns in Power Query via drag and drop How to reorder multiple columns in Power Query via drag and drop Mar 14, 2024 am 10:55 AM

In this article, we will show you how to reorder multiple columns in PowerQuery by dragging and dropping. Often, when importing data from various sources, columns may not be in the desired order. Reordering columns not only allows you to arrange them in a logical order that suits your analysis or reporting needs, it also improves the readability of your data and speeds up tasks such as filtering, sorting, and performing calculations. How to rearrange multiple columns in Excel? There are many ways to rearrange columns in Excel. You can simply select the column header and drag it to the desired location. However, this approach can become cumbersome when dealing with large tables with many columns. To rearrange columns more efficiently, you can use the enhanced query editor. Enhancing the query

See all articles