얼렁뚱땅 자바이야기

[JAVA] Comparator, Comparable 사용해서 객체 정렬해주기

MOSTAR 2023. 3. 13. 16:58

....... 살려주세요 .......

제발 파이썬 좀 열어주세요렁라 ㅓ아루어우우유유융류ㅜ어루넝루넝

ㅇ뤔우러워유ㅜㅇ우우유유유어루어루어루얼

ㅇ뤙뤈우란어루ㅏ머ㅜ이라ㅓ무아러ㅜㅁ아ㅓ룽ㄹ'ㄴ월

ㅁ우러ㅏㅁㄴ우러누아러우러우렁류어류어류

import java.util.*;
import java.io.*;

class Shape {
	String shape;
	int size;
	
	Shape(String shape, int size) {
		this.shape = shape;
		this.size = size;
	}
}

public class 사용자지정_Sort {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList <Shape> arr = new ArrayList<>();
		arr.add(new Shape("Triangle",3));
		arr.add(new Shape("Square", 5));
		arr.add(new Shape("Circle",7));
		arr.add(new Shape("Triangle",8));
		arr.add(new Shape("Square",7));
		
		Collections.sort(arr, new Comparator<Shape>() {
			// 음수일 때 : 앞으로 정렬, 양수일  때 : 뒤로 정렬 
			@Override
			public int compare(Shape s1, Shape s2) {
				// TODO Auto-generated method stub
				int compareResult = s1.shape.compareTo(s2.shape);
				if(compareResult<0) {
					return -1;
				} else if(compareResult>0) {
					return 1;
				} else {
					if(s1.size<s2.size) {
						return -1;
					} else {
						return 1;
					}
				}
			}
		});
		
		for(int i=0;i<arr.size();i++) {
			System.out.println(arr.get(i).shape + " "+arr.get(i).size);
		}
	}

}

 

import java.util.*;
import java.io.*;

class new_shape implements Comparable<new_shape>{
	String shape;
	int size;
	
	new_shape(String shape, int size) {
		this.shape = shape;
		this.size = size;
	}

	@Override
	public int compareTo(new_shape obj) {
		// TODO Auto-generated method stub
		if(this.shape.compareTo(obj.shape)<0) {
			return -1;
		} else if(this.shape.compareTo(obj.shape)>0) {
			return 1;
		} else {
			if(this.size<obj.size) {
				return -1;
			} else {
				return 1;
			}
		}
	}
	
	
}

public class 사용자지정_Sort2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList <new_shape> arr = new ArrayList<new_shape>();
		arr.add(new new_shape("Triangle",3));
		arr.add(new new_shape("Square", 5));
		arr.add(new new_shape("Circle",7));
		arr.add(new new_shape("Triangle",8));
		arr.add(new new_shape("Square",7));
		
		Collections.sort(arr);
		
		for(int i=0;i<arr.size();i++) {
			System.out.println(arr.get(i).shape + " "+arr.get(i).size);
		}
		
	}

}