`

Arrays.sort用法

    博客分类:
  • java
 
阅读更多
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) ;
}


转自(大漠驼铃)http://www.blogjava.net/nkjava/archive/2009/10/31/300519.html

 

分享到:
评论

相关推荐

    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