본문 바로가기

JAVA

java 객체 정렬

반응형
  • 첫 번째 방법
import java.util.ArrayList;
import java.util.Collections;

public class Main {
	
	static class Obj implements Comparable<Obj>{
		String s;
		int n;
		
		public Obj(String s, int n) {
			this.s = s;
			this.n = n;
		}
		
		@Override
		public int compareTo(Obj o) {
			
			return Integer.compare(this.n, o.n); // n 오름차순 정렬
//			return this.s.compareTo(o.s); // s 오름차순 정렬
		}
	}
	
	public static void main(String[] args) {
		
		ArrayList<Obj> list = new ArrayList();
		
		list.add(new Obj("B", 3));
		list.add(new Obj("E", 5));
		list.add(new Obj("G", 1));
		list.add(new Obj("A", 8));
		list.add(new Obj("D", 10));
		list.add(new Obj("Z", 7));
		list.add(new Obj("X", 6));
		
		Collections.sort(list);
		
		for(Obj o : list) {
			System.out.println(o.s + " " + o.n);
		}
	}
}

 

  • 두 번째 방법
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class Main {
	
	static class Obj {
		String s;
		int n;
		public Obj(String s, int n) {
			this.s = s;
			this.n = n;
		}
		
	}
	
	public static void main(String[] args) {
		ArrayList<Obj> list = new ArrayList();
		
		list.add(new Obj("B", 3));
		list.add(new Obj("E", 5));
		list.add(new Obj("G", 1));
		list.add(new Obj("A", 8));
		list.add(new Obj("D", 10));
		list.add(new Obj("Z", 7));
		list.add(new Obj("X", 6));
		
		Collections.sort(list, new Comparator<Obj>() {
			public int compare(Obj o1, Obj o2) {
//				return o1.s.compareTo(o2.s);
				return Integer.compare(o1.n, o2.n);
			}
		});
		
		for(Obj o : list) {
			System.out.println(o.s + " " + o.n);
		}
	}
}
반응형

'JAVA' 카테고리의 다른 글

Java 의 length, length(), size() 차이점  (0) 2020.07.03
HashMap 의 Key, Value 기준 정렬하기  (0) 2020.06.23
JDBC API 연습문제  (0) 2020.04.02
모듈 기술자 (Java 11 버전 이후)  (3) 2019.12.18
"HashMap"의 "Value" 기준 정렬  (0) 2019.08.27