아자 와자 아자
728x90
728x90
이 게시글은 남궁성의 정석코딩 - 자바의 정석 기초편(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]

 

 

 

 

 

 

728x90
728x90

'💻 Study > Java' 카테고리의 다른 글

[Java] 제네릭스1  (0) 2023.03.13
[Java] 컬렉션 프레임워크9_HashMap  (0) 2023.03.11
[Java] 컬렉션 프레임워크8_TreeSet  (0) 2023.03.11
profile

아자 와자 아자

@와자!

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!