이 게시글은 남궁성의 정석코딩 - 자바의 정석 기초편(2020최신)을 보고 공부한 내용을 정리한 게시글입니다.
틀린 내용이 있을 수 있습니다.
Collections 클래스
컬렉션을 다룰 때 필요한 유용한 static 메서드를 제공하는 클래스이다.
Objects - 객체를 다룰 때 유용한 메서드를 제공하는 클래스
Arrays - 배열을 다룰 때 유용한 메서드를 제공하는 클래스
Collections - 컬렉션을 다룰 때 유용한 메서드를 제공하는 클래스
간단하게 보자면,
fill() - 컬렉션 채우기
copy() - 컬렉션 복사
sort() - 컬렉션 정렬
binarySearch() - 컬렉션 검색
synchronizedXXX() - 컬렉션의 동기화
옛날에는 무조건 동기화되어 있었는데, 최근에는 필요할 때만 동기화하도록 바뀌었다. 그럴 때 사용한다.
unmodifiableXXX() - 변경불가(readOnly) 컬렉션 만들기, 컬렉션을 수정할 수 없게 할 때 사용한다.
singletonXXX() - 싱글톤 컬렉션 만들기, 객체 하나만 저장하는 컬렉션이다.
checkedXXX() - 한 종류의 객체만 저장하는 컬렉션 만들기, 한가지 타입만 저장 가능(ex. String 타입만 저장가능)
checked 메서드는 거의 안씀
Collections 클래스의 메서드 사용예시
Collections의 메서드는 메서드 사용 시 앞에 Collections를 붙여줘야 한다.
ex) Collections.addAll(), Collections.rotate() 등
하지만 최상단에 import static java.util.Collections.* 을 붙이면 생략 가능해진다.
addAll(List, value1,value2,...)
List를 value로 채운다.
import java.util.*;
import static java.util.Collections.*;
public class Test {
public static void main(String[] args){
List list = new ArrayList(); // 값이 없는 빈 List
addAll(list, 1,2,3,4,5);
System.out.println(list); //[1, 2, 3, 4, 5]
}
}
rotate(List, int)
List 안에 값이 오른쪽으로 int만큼 이동한다.
맨 뒤에 있는 값은 맨 앞으로 온다.
// 위에 코드에 이어서..
rotate(list, 3);
System.out.println(list); //[3, 4, 5, 1, 2]
swap(List, index1, index2)
List의 index1 위치값과 index2 위치값을 교환한다.
// 위에 코드에 이어서..
swap(list, 1, 3);
System.out.println(list); //[3, 1, 5, 4, 2]
shuffle(List)
List에 저장된 요소들의 위치를 임의로 변경한다.
// 위에 코드에 이어서..
shuffle(list);
System.out.println(list); //[1, 3, 5, 2, 4]
sort(List, reverseOrder())
List만 입력하면 List를 오름차순으로 정렬하고,
reverseOrder()를 추가하면 역순(내림차순)으로 정렬한다.
// 위에 코드에 이어서..
sort(list, reverseOrder());
System.out.println(list); //[5, 4, 3, 2, 1]
binarySearch(List, value)
List에서 value가 저장된 위치 값을 반환한다.
* binarySearch 사용 전 반드시 정렬해준 후 사용해야 한다.
// 위에 코드에 이어서..
sort(list);
System.out.println(binarySearch(list, 2)); //1
fill(List, value)
List의 모든 요소을 value 값으로 채운다.
// 위에 코드에 이어서..
fill(list, "oh");
System.out.println(list); //[oh, oh, oh, oh, oh]
nCopies(List.size(), value)
List와 같은 크기의 새로운 List를 생성하고 모든 요소를 value로 채운다.
// 위에 코드에 이어서..
List list2 = nCopies(list.size(), "wow");
System.out.println(list2); //[wow, wow, wow, wow, wow]
disjoint(List1, List2)
List1과 List2 사이에 공통요소가 없으면 true를 반환한다.
// 위에 코드에 이어서..
System.out.println(disjoint(list, list2)); //true
copy(List1, List2)
List2를 List1에 복사한다.
// 위에 코드에 이어서..
System.out.println(list); //[oh, oh, oh, oh, oh]
copy(list, list2);
System.out.println(list); //[wow, wow, wow, wow, wow]
replaceAll(List, value1, value2)
List에 있는 모든 value1이 value2로 바뀐다.
// 위에 코드에 이어서..
replaceAll(list, "wow", "end");
System.out.println(list); //[end, end, end, end, end]
'💻 Study > Java' 카테고리의 다른 글
[Java] 제네릭스1 (0) | 2023.03.13 |
---|---|
[Java] 컬렉션 프레임워크9_HashMap (0) | 2023.03.11 |
[Java] 컬렉션 프레임워크8_TreeSet (0) | 2023.03.11 |