본문 바로가기
JAVA 정리노트

Java 객체 비교해보기(ArrayList, Collections, Random를 사용한 정렬)

by Dodledd 2024. 2. 4.

오늘은 Generic입문 전에 간단한 코드로 몇 가지 기능을 사용하여 감을 잡아보겠다!

 

Integer 형 list에 랜덤한 값 10개를 넣어 출력하고, 그 다음 출력문은 내림차순으로 정렬하여 출력하는 코드이다.

package test11;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class ListTest {

	public static void main(String[] args) {

		List<Integer> list = new ArrayList<Integer>(); //Integer형 List 선언
		Decending d = new Decending(); //Decending 클래스 선언
		Random rand = new Random(); //math.random과 다른 랜덤발생
		
				
		for(int i = 0; i < 10; i++) {
			list.add(i, rand.nextInt(100) + 1); //일반 리스트와는 다르게 list.add 를 사용하여 값을 넣어줘야한다.
												//rand.nextInt(0부터 발생했으면 하는 값), 추가로 Double같은 다른 자료형도 쓸 수 있다.
		}

		System.out.print("정렬 전 : ");
		display(list); //출력문
		
	
		Collections.sort(list,d);  //d 대신에 new Decending() 이 들어가도 똑같은 코드가 된다.
		
		
		System.out.println();
		System.out.print("정렬 후 : ");
		display(list); //출력문
	}
	
	
	public static void display(List<Integer> list) { //list의 매개변수확인
		for(Integer lists : list) { //forEach문
			System.out.print(lists + " ");
		}
	}

}

 

 

 

 

밑에가 Decending 클래스이다.

 

package test11;

import java.util.Comparator;

public class Decending implements Comparator<Integer>{ // <>여기에 타입 명시를 해줘야 함.
	

	@Override
	public int compare(Integer o1, Integer o2) { //내림차순 설정
		if(o1>o2)
			return -1;   //여기서 양수를 반환하고
		else if(o1<o2)
			return 1;    //여기서 음수를 반환하면 오름차순이 된다. 기본 dafault값은 오름차순이다.
		else if(o1==o2)
			return 0;

		return 0;
	}

	
}

 

 

아직 메서드를 어떻게 사용하는지만 알고 정확한 개념은 모르는 상태에서 구글링을 통한 간단한 예제를 풀어보았다.

 

다음글에는 Gereric에 대해 배우면서 정확하게 정리해보겠다.

'JAVA 정리노트' 카테고리의 다른 글

Java Thread에 대하여  (0) 2024.02.13
Big-O Notation, (시간,공간 복잡도)  (0) 2024.02.11
JAVA [GC, Garbage Collection] 정리본  (0) 2024.02.03
JAVA I/O, stream에 대하여  (0) 2024.02.02
JAVA의 기본 API  (2) 2024.01.31