array类是一个包含静态方法的类,这些方法与数组一起使用,以便搜索、排序、比较、插入元素或返回数组的字符串表示形式。排成一列。因此,让我们先详细说明这些函数,然后再讨论它们。他们的情况如下: JAVAutil。阵列 班在这里,我们将使用 Arrays类的sort()方法 .
数组。sort()方法由两种变体组成:一种是,我们不传递任何参数,在这些参数中,它对整个数组进行排序,无论是整数数组还是字符数组。但是,如果我们应该使用数组类的这个方法对特定部分进行排序,那么我们将重载它,并将起始索引和最后一个索引传递给数组。
语法: sort()方法
Arrays.sort();
语法: 重载的sort()方法
public static void sort(int[] arr, int from_Index, int to_Index) ;
参数: 从语法上可以看出,它有三个参数,如下所示:
- 要排序的数组
- 要排序的第一个元素(包括)的索引(称为from_索引)
- 要排序的最后一个元素的索引(称为last_索引)
返回类型: 它不返回任何值。
现在,让我们看看sort()函数在Arrays类的不同场景中的实现,如下所示:
例1:
JAVA
// Java Program to Sort Array of Integers // by Default Sorts in an Ascending Order // using Arrays.sort() Method // Importing Arrays class from the utility class import java.util.Arrays; // Main class public class GFG { // Main driver method public static void main(String[] args) { // Custom input array int [] arr = { 13 , 7 , 6 , 45 , 21 , 9 , 101 , 102 }; // Applying sort() method over to above array // by passing the array as an argument Arrays.sort(arr); // Printing the array after sorting System.out.println( "Modified arr[] : %s" , Arrays.toString(arr)); } } |
输出:
Modified arr[] : [6, 7, 9, 13, 21, 45, 101, 102]
例2:
JAVA
// Java program to Sort a Subarray in Array // Using Arrays.sort() method // Importing Arrays class from java.util package import java.util.Arrays; // Main class public class GFG { // Main driver method public static void main(String[] args) { // Custom input array // It contains 8 elements as follows int [] arr = { 13 , 7 , 6 , 45 , 21 , 9 , 2 , 100 }; // Sort subarray from index 1 to 4, i.e., // only sort subarray {7, 6, 45, 21} and // keep other elements as it is. Arrays.sort(arr, 1 , 5 ); // Printing the updated array which is // sorted after 2 index inclusive till 5th index System.out.println( "Modified arr[] : %s" , Arrays.toString(arr)); } } |
输出:
Modified arr[] : [13, 6, 7, 21, 45, 9, 2, 100]
例3:
JAVA
// Java program to Sort a Subarray in Descending order // Using Arrays.sort() // Importing Collections class and arrays classes // from java.util package import java.util.Arrays; import java.util.Collections; // Main class public class GFG { // Main driver method public static void main(String[] args) { // Note that we have Integer here instead of // int[] as Collections.reverseOrder doesn't // work for primitive types. Integer[] arr = { 13 , 7 , 6 , 45 , 21 , 9 , 2 , 100 }; // Sorts arr[] in descending order using // reverseOrder() method of Collections class // in Array.sort() as an argument to it Arrays.sort(arr, Collections.reverseOrder()); // Printing the array as generated above System.out.println( "Modified arr[] : %s" , Arrays.toString(arr)); } } |
输出:
Modified arr[] : [100, 45, 21, 13, 9, 7, 6, 2]
例4:
JAVA
// Java program to sort an array of strings // in ascending and descending alphabetical order // Using Arrays.sort() // Importing arrays and Collections class // from java.util class import java.util.Arrays; import java.util.Collections; // Main class public class GFG { // Main driver method public static void main(String[] args) { // Custom input string String arr[] = { "practice.geeksforgeeks.org" , "quiz.geeksforgeeks.org" , "code.geeksforgeeks.org" }; // Sorts arr[] in ascending order Arrays.sort(arr); System.out.println( "Modified arr[] : %s" , Arrays.toString(arr)); // Sorts arr[] in descending order Arrays.sort(arr, Collections.reverseOrder()); // Lastly printing the above array System.out.println( "Modified arr[] : %s" , Arrays.toString(arr)); } } |
输出:
Modified arr[] : Modified arr[] : [quiz.geeksforgeeks.org, practice.geeksforgeeks.org, code.geeksforgeeks.org]
最后,我们将最全面地实现sort()方法,因为这里我们将在 比较器接口 .
例5:
JAVA
// Java program to demonstrate Working of // Comparator interface // Importing required classes import java.io.*; import java.lang.*; import java.util.*; // Class 1 // A class to represent a student. class Student { int rollno; String name, address; // Constructor public Student( int rollno, String name, String address) { // This keyword refers to current object itself this .rollno = rollno; this .name = name; this .address = address; } // Used to print student details in main() public String toString() { return this .rollno + " " + this .name + " " + this .address; } } // Class 2 // Helper class extending Compatator interface class Sortbyroll implements Comparator<Student> { // Used for sorting in ascending order of // roll number public int compare(Student a, Student b) { return a.rollno - b.rollno; } } // Class 3 // Main class class GFG { // Main driver method public static void main(String[] args) { Student[] arr = { new Student( 111 , "bbbb" , "london" ), new Student( 131 , "aaaa" , "nyc" ), new Student( 121 , "cccc" , "jaipur" ) }; System.out.println( "Unsorted" ); for ( int i = 0 ; i < arr.length; i++) System.out.println(arr[i]); // Sorting on basic as per class 1 created // (user-defined) Arrays.sort(arr, new Sortbyroll()); System.out.println( "Sorted by rollno" ); for ( int i = 0 ; i < arr.length; i++) System.out.println(arr[i]); } } |
输出:
Unsorted 111 bbbb london 131 aaaa nyc 121 cccc jaipur Sorted by rollno 111 bbbb london 121 cccc jaipur 131 aaaa nyc
注: 数组之间有细微的差别。排序()vs 收藏。排序() .阵列。排序也适用于原始数据类型的数组。 收藏 .sort()适用于对象集合,如 ArrayList , 链表 等
本文由 莫希特·古普塔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。