`
javasee
  • 浏览: 959025 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Arrays.sort用法

阅读更多

package  test;

import  java.util.Arrays;
import  java.util.Comparator;

public   class  ArraySortDemo {
/**
* 整数型数组排序
*/
public   void  sortIntArray() {
   
int [] arrayToSort  =   new   int [] {  48 5 89 80 81 23 45 16 2  };
   System.out.println(
" 整数型数组排序,排序前: " );
   
for  ( int  i  =   0 ; i  <  arrayToSort.length; i ++ ){
    System.out.print(arrayToSort[i]
+ " , " );
   }
   
//  调用数组的静态排序方法sort
  Arrays.sort(arrayToSort);
   System.out.println();
   System.out.println(
" 排序后: " );
   
for  ( int  i  =   0 ; i  <  arrayToSort.length; i ++ ){
    System.out.print(arrayToSort[i]
+ " , " );
   }
}

/**
* 字符型数组排序demo
*/
public   void  sortStringArray() {
   String[] arrayToSort 
=   new  String[] {  " Oscar " " Charlie " " Ryan " ,
     
" Adam " " David " , " aff " , " Aff "  };
   System.out.println();
   System.out.println(
" 字符型数组排序,排序前: " );
   
for  ( int  i  =   0 ; i  <  arrayToSort.length; i ++ ){
    System.out.print(arrayToSort[i]
+ " , " );
   }
   System.out.println();
   System.out.println(
" 排序后: " );
   
//  调用数组的静态排序方法sort
   Arrays.sort(arrayToSort);

   
for  ( int  i  =   0 ; i  <  arrayToSort.length; i ++ ){
    System.out.print(arrayToSort[i]
+ " , " );
   }
}

/**
* 对象数组排序demo
*/
public   void  sortObjectArray() {
   Dog o1 
=   new  Dog( " dog1 " 1 );
   Dog o2 
=   new  Dog( " dog2 " 4 );
   Dog o3 
=   new  Dog( " dog3 " 5 );
   Dog o4 
=   new  Dog( " dog4 " 2 );
   Dog o5 
=   new  Dog( " dog5 " 3 );
   Dog[] dogs 
=   new  Dog[] { o1, o2, o3, o4, o5 };
   System.out.println();
   System.out.println(
" 对象数组排序排序前: " );
   
for  ( int  i  =   0 ; i  <  dogs.length; i ++ ) {
    Dog dog 
=  dogs[i];
    System.out.print(dog.getName()
+ " [ " + dog.getWeight() + " ], " );
   }
   Arrays.sort(dogs, 
new  ByWeightComparator());
   System.out.println();
   System.out.println(
" 排序后: " );
   
for  ( int  i  =   0 ; i  <  dogs.length; i ++ ) {
    Dog dog 
=  dogs[i];
    System.out.print(dog.getName()
+ " [ " + dog.getWeight() + " ], " );
   }
}

public   static   void  main(String[] args) {
   ArraySortDemo t 
=   new  ArraySortDemo();
   t.sortIntArray();
   t.sortStringArray();
   t.sortObjectArray();
}
}

/**
* 定义了一个Dog类
*/
class  Dog {
private  String name;
private   int  weight;

public  Dog(String name,  int  weight) {
   
this .setName(name);
   
this .weight  =  weight;
}

public   int  getWeight() {
   
return  weight;
}

public   void  setWeight( int  weight) {
   
this .weight  =  weight;
}

public   void  setName(String name) {
   
this .name  =  name;
}

public  String getName() {
   
return  name;
}
}

/**
* 因为要对对象进行排序,所以要实现java.util.Comparator接口的compare(T o1, T o2)方法,在该方法中自定义排序算法。
*/
class  ByWeightComparator  implements  Comparator {
public   final   int  compare(Object pFirst, Object pSecond) {
   
int  aFirstWeight  =  ((Dog) pFirst).getWeight();
   
int  aSecondWeight  =  ((Dog) pSecond).getWeight();
   
int  diff  =  aFirstWeight  -  aSecondWeight;
   
if  (diff  >   0 )
    
return   1 ;
   
if  (diff  <   0 )
    
return   - 1 ;
   
else
    
return   0 ;
}
}

运行结果:

整数型数组排序,排序前:
48 , 5 , 89 , 80 , 81 , 23 , 45 , 16 , 2 ,
排序后:
2 , 5 , 16 , 23 , 45 , 48 , 80 , 81 , 89 ,
字符型数组排序,排序前:
Oscar,Charlie,Ryan,Adam,David,aff,Aff,
排序后:
Adam,Aff,Charlie,David,Oscar,Ryan,aff,
对象数组排序排序前:
dog1[
1 ],dog2[ 4 ],dog3[ 5 ],dog4[ 2 ],dog5[ 3 ],
排序后:
dog1[
1 ],dog4[ 2 ],dog5[ 3 ],dog2[ 4 ],dog3[ 5 ],
地方

List list  =   new  ArrayList() ;
list.add(
" abcd " ) ;
list.add(
" abdc " ) ;
list.add(
" aadf " ) ;
list.add(
" aabf " ) ;
/* 将list转为数组 */
String[] strs 
=   new  String[list.size()] ;
list.toArray(strs) ;
/* 排序,只排2<=索引<4之间的数据 */
Arrays.sort(strs,
2 , 4 ) ;
for (String str : strs){
System.out.println(str) ;
}
分享到:
评论

相关推荐

    JAVA基于Arrays.sort()实现数组升序和降序

    在 Java 中,排序数组是非常常见的操作之一,而 Java 提供了多种方式来实现数组的排序,其中一种常用的方法是使用 Arrays.sort() 方法。今天,我们将详细介绍如何使用 Arrays.sort() 方法来实现数组的升序和降序排序...

    Java Arrays.sort和Collections.sort排序实现原理解析

    `ArrayList`的`sort()`方法最终会调用`Arrays.sort()`。 `Arrays.sort()`的实现相当复杂,它采用了混合排序算法——TimSort。TimSort是一种稳定的排序算法,它的设计灵感来源于归并排序和插入排序,尤其适合于已经...

    深入理解java中Arrays.sort()的用法

    "深入理解Java中Arrays.sort()的用法" 在Java中,Arrays.sort()是一个非常重要的方法,它可以对数组进行排序。该方法是Arrays类的静态方法,在需要对数组进行排序时,非常的好用。但是sort()的参数有好几种,基本上...

    java中的arrays.sort()代码详解

    在本文中,我们将详细介绍Arrays.sort()的使用方法,包括简单示例、策略模式和“super”的使用等相关内容。 1. 简单示例 Arrays.sort()的使用非常简单明了。下面的例子中,我们定义了一个比较Dog大小的Comparator...

    java的Arrays类的应用.doc

    - `Arrays.sort()`方法用于对数组进行排序,可以对整个数组或数组的部分区间进行排序。例如,`Arrays.sort(array1, 2, 7)`将数组`array1`的第2个到第6个元素进行升序排序。而`Arrays.sort(array1)`则对整个数组进行...

    Java5.0数组排序

    在Java 5.0之前,我们通常使用`Arrays.sort()`方法来对数组进行排序,但该方法的功能相对有限。Java 5.0中,`java.util.Arrays`类和`java.util.Collections`类都得到了升级,提供了更强大的排序功能。 一、Java 5.0...

    java arrays类.docx

    举例说明,以下代码展示了如何使用Arrays类的一些主要方法: ```java import java.util.Arrays; public class Main { public static void main(String[] args) { int[] array = {5, 3, 2, 4, 1}; // 输出数组 ...

    单词按首字母排序的两种方法

    ### 方法一:使用`Arrays.sort()`方法 在Java中,`java.util.Arrays`类提供了`sort()`方法来对数组进行排序。当对字符串数组进行排序时,`sort()`方法默认使用字典顺序进行排序,即根据ASCII值的大小进行比较。然而...

    EE16 Arrays.docx

    - **通过复制部分元素**:使用`Array.repeat`方法可以重复数组中的某一部分。 - **组合数组**:使用`ee.array.cat`或`array.mask`等函数可以合并两个或多个数组。 - **重组数组**:`array.sort`、`array.transpose`...

    JAVA通过数组按首字母排序

    在给定的代码示例中,我们首先定义了一个字符串数组`arrayToSort`,然后使用`Arrays.sort()`方法对其进行排序。 ##### 1. 定义字符串数组 ```java String[] arrayToSort = new String[]{"Oscar", "Charlie", "Ryan...

    Java容易被忽视的API

    1. `Arrays.sort(int[])` 和 `Arrays.sort(int[], int, int)` 用于对整型数组进行排序,第二个方法允许指定排序的范围。 2. `Arrays.sort(T[], int, int, Comparator)` 和 `Arrays.sort(T[], Comparator)` 适用于...

    Java 程序对数组元素进行降序排序

    在 Java 14 之前,Arrays.sort(int[]) 使用双枢轴快速排序,最坏情况复杂度为 O(N^2)。从 Java 14 开始,Arrays.sort(int[]) 使用introsort 算法,时间复杂度为 O(N log N)。 对数组元素进行降序排序可以通过使用 ...

    Java实现类排序

    对于数组,我们可以使用`Arrays.sort()`方法;对于集合,我们可以使用`Collections.sort()`方法。这两个方法都可以对基本类型和对象类型的数组或集合进行排序,但默认情况下,它们依赖于元素的自然顺序,即元素类型...

    java sort排序算法实例完整代码

    Java中的`sort`排序算法是Java集合框架的重要组成部分,主要用于对List接口的实现类进行排序。这个算法在Java中主要体现在`...在实际编程中,了解并掌握`sort`的原理和用法,对于提升程序性能和解决问题有着重要作用。

    JAVA中工具类Arrays和异常处理的实例操作.doc

    `Arrays.sort()`方法可以用来对数组进行排序。该方法支持各种基本数据类型的排序以及对象数组的排序。对于对象数组排序,可以通过提供一个比较器(Comparator)来指定排序规则。 **示例代码**: ```java import ...

    Java中Arrays类详解.docx

    在Java编程语言中,`java.util.Arrays`类是一个非常实用的工具类,它提供了一系列静态方法,用于操作各种类型的数组,包括整型、浮点型、字符型等。这个类使得处理数组变得更加简单和高效。下面我们将详细探讨`...

    Java sort算法学习

    Java中的排序主要涉及到`Arrays.sort()`和`Collections.sort()`两个方法。`Arrays.sort()`用于对基本类型数组和对象数组进行排序,而`Collections.sort()`则适用于列表(List)类型的排序。 1. **快速排序**:这是`...

    Why java Arrays use two different sort algorithms for different types?

    总之,Java `Arrays.sort()`方法使用快速排序和Timsort是因为它们各自在处理原始类型和对象类型数组时有其优势。快速排序对原始类型效率高,而Timsort对对象类型提供稳定性和高效处理部分有序数据的能力。这种策略...

    详解java Collections.sort的两种用法

    在上面的代码中,我们首先创建了一个 Integer 类型的 List,然后使用 Collections.sort 方法对其进行排序。排序后的结果是默认的正序排序。 自定义类的排序 在实际应用中,我们经常需要对自定义类进行排序。...

    Arrays类常用方法.docx

    那么使用Arrays.sort(intArray)将会将数组排序为{1, 2, 3, 5, 8}。 4. Array.copyOf(数组名, 给定复制新数组的长度) copyOf() 方法可以将数组复制到一个新的数组中。例如,如果我们有一个int类型的数组intArray = ...

Global site tag (gtag.js) - Google Analytics