JAVA/java 공부

[JAVA] 컬렉션 프레임워크 (List, Set, Map)

congs 2023. 3. 26. 10:56

 컬렉션 프레임워크 : 표준화된 방식의 자료구조

✔ 사용

  1. 데이터를 묶어서 관리하는 경우 사용
  2. 주로 배열 대신 사용
  3. 자료 형들은 첫 글자만 대문자로 변환 → 클래스로 사용
    • 클래스를 지정하지 않는 경우 → Object가 자동으로 들어감
    • String, Byte, Boolean.. but!! (int -> Integer)
  4. 출력하는 방법
for(int i=0; i<list5.size(); i++) {
	System.out.print(list5.get(i)+" ");
}	
//단, Set,Map은 순서가 없어서 향상된 for문과 Iterator 사용!

for(int tmp : list5) {
	System.out.print(tmp + " ");
}

Iterator<Integer> it = list5.iterator();
while(it.hasNext()) { //다음요소가 있는지 체크, 값이 있으면 true
	Integer tmp = it.next(); //next()의 다음요소 가져오기
	System.out.print(tmp + " "); //출력
}

 

✔  내림차순 / 오름차순 정렬 (sort(객체))

  • 오름차순 정렬 (1,2,3..)
Collections.sort(); : 오름차순 정렬(작은수부터)
  • 내림차순 정렬(5,4,3..)
//sort(객체)
//- 객체: Comparator 인터페이스를 구현한 객체를 넣어야함 (익명클래스 사용)
//- 비교:(Compare) 메서드를 사용하여 객체를 생성 
		
//내림차순 이용시 사용!
list5.sort(new Comparator<Integer>() {

@Override
public int compare(Integer o1, Integer o2) {
	//o1-o2 : 오름차순, o2-o1 : 내림차순
	return o1-o2; //+면 오름차순으로 -는 내림차순으로 이용
}
});
System.out.println(list);
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class List01 {

	public static void main(String[] args) {
		// 하루 일과를 저장하는 list 생성

		ArrayList<String> list = new ArrayList<>();
		
		list.add("일어나기");
		list.add("도시락 준비하기");
		
		//외부 구현시,
		list.sort(new Test());
		System.out.println(list);	
		
	
}
class Test implements Comparator<String>
	@Override
	public int compare(String o1, String o2) {
		//compareTo 메서드를 활용
		return o1.compareTo(o2); //오름차순
		//return o2.compareTo(o1); //내람차
	}

}