본문 바로가기
JAVA

sort 메소드 예제1

by Son 2021. 7. 9.

package chapter4;

import java.util.Arrays;
import java.util.Collections;

class People implements Comparable<People> { //calss People 생성 <People> : 인터페이스 Comparable은 People 객체의 정보를 가진다
private String name;  //생성자
private int age;        //생성자

public People(String name, int age) {
this.name = name;
this.age = age;
}

public String print() {
return "이름: " + name + " 나이: " + age;
}

@Override   //메소드 오버라이딩
public int compareTo(People p) {   //compareTo를 이용하여
return this.age - p.age;    //현재 들어있는 값에서 매개변수를 통해 들어온 값을 빼줌 여기서 음수면 왼쪽으로 양수면 오른쪽으로 0이면 그대로 위치
}
}

public class SortEx1 {

//정렬

public static void main(String[] args) {
Integer[] arr = {4, 23, 33, 15, 17, 19}; /*정렬을 위한 배열 arr  여기서 자료형인 int로 배열선언을 할 경우 내림차순의Collections 클래스에 접근을 하지 못하기 때문에 내림차순이 되지 않으므로 클래스 Integer형의 arr객체로 배열을 선언한다*/
Arrays.sort(arr); /*Arrays 클래스 : 항목 정렬, 항목 검색, 항목 비교와 같은 메소드들을 제공 + 배열 항목 정렬을 하는 메소드 sort + 정렬을 위한 (arr) 기본적으로 항목정렬은 오름차순으로 진행함*/
for(int i : arr) {  /*arr에 담긴 정보들을 int i 라는 변수에 넣어줌*/
System.out.println(i);  /* 출력형태 : 4 15 17 19 23 33 (오름차순) */
}

Arrays.sort(arr, Collections.reverseOrder()); /*내림차순정렬 : 내림 차순 정렬을 하기 위해서는 sort메소드 안에 내림차순을 할 배열명과 Collections.reverseOrder()을 붙인다*/

for(int i : arr) {
System.out.println(i); /*출력형태 : 33 23 19 17 15 4 (내림차순)*/
}

People[] pe = { new People("준일", 20),   //People 클래스 pe 객체 생성
new People("은수", 30),
new People("종원", 24),
new People("대양", 22)
};

Arrays.sort(pe);  //오름차순

for(People p : pe) {  //pe라는 객체를 People 클래스 p객체에 담고
System.out.println(p.print());  //print메소드에 접근해서 출력 출력형태 : 이름: 준일 나이: 20 이름: 대양 나이: 22 이름: 종원 나이: 24 이름: 은수 나이: 30
}

Arrays.sort(pe, Collections.reverseOrder());  //내림차순

for(People p : pe) {  
System.out.println(p.print());  //내림차순후 print메소드에 접근해서 출력 출력형태 : 이름: 은수 나이: 30 이름: 종원 나이: 24 이름: 대양 나이: 22 이름: 준일 나이: 20
}
}

}

'JAVA' 카테고리의 다른 글

자바 황금비율  (0) 2021.09.11
백준 RGB거리  (0) 2021.07.13
백준 1463번  (0) 2021.07.07
백준 1463번 1로 만들기  (0) 2021.07.01
자바 입출력 기본  (0) 2021.06.21