forEach: sort(오름차순 정렬)

·2022년 11월 7일
0
  • List에 담긴 요소<제네릭타입>은 Comparable인터페이스를 상속받아야 함
  • Collections.sort(): public void sort(Comparator<? super E> c)
    오름차순 정렬 메소드. 제네릭타입이 Comparable을 implements 해야 사용 가능
  • Comparable 인터페이스: 함수형 인터페이스
    추상메소드: int compareTo(제네릭타입 변수)
    매개변수에 해당 클래스타입이 들어가는 int형 메소드
    정렬을 위해 씀

->Student라는 클래스에서 int num을 기준으로 정렬한다고 해보자
num: 자기자신(앞의값), o.num: 입력한 비교대상
return값이 0이나 음수이면 자리바꿈X, 양수면 자리바꿈

@Override
public int compareTo(Student o) {
	if(num>o.num){  //입력한 값보다 크면
		return 1;	//1을 리턴
	}else if(num<o.num){
		return -1;
	}else{
		return 0;	
	}

->내림차순으로 정렬하고 싶으면 반대로 하면 됨

@Override
public int compareTo(Student o) {
	if(num>o.num){  //입력한 값보다 크면
		return -1;	//-1을 리턴(자리안바꿈)
	}else if(num<o.num){
		return 1;	//자리바꿈
	}else{
		return 0;	
	}

->문자열 정렬

public int compareTo(Member m) {
		return id.compareTo(m.id);   // 이름순으로 오름차순
		return id.compareTo(m.id)*-1; // 이름순으로 내림차순

-> 클래스 상속을 해주면
-> main메소드에서 sort메소드를 이용해서 정렬하기

ArrayList<클래스명> as = new ArrayList<클래스명>();

Collection.sort(as);
as.forEach(t->System.out.println(t));

=>클래스에 오버라이드 한대로 정렬되어 출력됨

profile
웹개발입문자

0개의 댓글