자바 의 arrays 배열 정렬 예제 공유

2823 단어 자바배열 정렬
자바 API 는 Arrays 류 에 대한 설명 은 배열(예 를 들 어 정렬 과 검색)을 조작 하 는 여러 가지 방법 을 포함한다.
1.기본 데이터 형식의 배열 정렬
설명:
(1)Arrays 클래스 의 sort()는'조 정 된 빠 른 정렬 법'을 사용 합 니 다.
(2)예 를 들 어 int[],double[],char[]등 기본 데이터 형식의 배열,Arrays 류 는 기본 적 인 오름차 순 배열 만 제공 하고 해당 하 는 내림차 순 배열 방법 을 제공 하지 않 았 다.
(3)기본 유형의 배열 을 정렬 하려 면 이 배열 을 해당 하 는 패 키 징 클래스 배열 로 바 꿔 야 합 니 다.예 를 들 어 Integer[],Double[],Character[]등 이 배열 을 정렬 해 야 합 니 다.(차라리 먼저 오름차 순 서 를 매기 고 자신 이 장 서 를 바 꾸 는 것 이 낫다.
기본 오름차 순 으로 배열 을 정렬 합 니 다.
 함수 원형:static void sort(int[]a)   지정 한 int 형 배열 을 숫자 오름차 순 으로 정렬 합 니 다.
static void sort(int[] a, int fromIndex, int toIndex)  지정 한 int 형 배열 의 지정 범 위 를 숫자 오름차 순 으로 정렬 합 니 다. 
코드 인 스 턴 스:

import java.util.Arrays;
public class ArraysSort_11 {
    public static void main(String args[])
    {
        int[] a={1,4,-1,5,0};
        Arrays.sort(a);
        // a[] {-1,0,1,4,5}
        for(int i=0;i<a.length;i++)
            System.out.print(a[i]+"  ");
    }
}
2.복합 데이터 형식의 데이터 정렬
함수 원형:
(1)public static void sort(T[] a,Comparator c)  지정 한 비교 기 가 발생 하 는 순서에 따라 지정 한 대상 배열 을 정렬 합 니 다.
(2)public static void sort(T[] a,int fromIndex,int toIndex,Comparator c)  지정 한 비교 기 가 발생 하 는 순서에 따라 지정 한 대상 배열 의 지정 범 위 를 정렬 합 니 다. 
설명:이 두 정렬 알고리즘 은'조 정 된 병합 정렬'알고리즘 입 니 다.
코드 인 스 턴 스:

package aa;

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

public class Arraysort {
    Point[] arr;

    Arraysort(){
        arr=new Point[4];    // arr,
        for(int i=0;i<4;i++)
            arr[i]=new Point();
    }

    public static void main(String[] args) {

        Arraysort sort=new Arraysort();
        sort.arr[0].x=2;sort.arr[0].y=1;    // ,
        sort.arr[1].x=2;sort.arr[1].y=2;
        sort.arr[2].x=1;sort.arr[2].y=2;
        sort.arr[3].x=0;sort.arr[3].y=1;

        Arrays.sort(sort.arr, new MyComprator());    // ,
        for(int i=0;i<4;i++)    //
            System.out.println("("+sort.arr[i].x+","+sort.arr[i].y+")");
    }
}

class Point{
    int x;
    int y;
}

// ,x ;x , y
class MyComprator implements Comparator {
    public int compare(Object arg0, Object arg1) {
        Point t1=(Point)arg0;
        Point t2=(Point)arg1;
        if(t1.x != t2.x)
            return t1.x>t2.x? 1:-1;
        else
            return t1.y>t2.y? 1:-1;
    }
}

좋은 웹페이지 즐겨찾기