数组。Java中的sort()及其示例

array类是一个包含静态方法的类,这些方法与数组一起使用,以便搜索、排序、比较、插入元素或返回数组的字符串表示形式。排成一列。因此,让我们先详细说明这些函数,然后再讨论它们。他们的情况如下: JAVAutil。阵列 班在这里,我们将使用 Arrays类的sort()方法 .

null

数组。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主页上,并帮助其他极客。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享