본문 바로가기

코딩테스트 스터디

JAVA Arrays, stream, Collections 클래스와 메서드 정리

COS pro 1급 시험이 토요일(ㅎㅎ내일)에 있어서! 한 번 쭉 정리해보려고 한다~~

묻지도 따지지도 말고 import

import java.util.*; //Arrays, List
import java.util.stream.*; //stream, Collectors

import java.nio.CharBuffer; //char[] to Stream

 

Arrays 메서드

정렬
Arrays.sort(array);

반환형: 배열

 

배열 복사
Arrays.copyOf(원본 배열, 복사할 길이)

반환형: 배열

 

위치 지정해서 배열 복사
Arrays.copyOfRange(원본 배열, 시작 index, 마지막 index+1)
ex) 0, 3을 했다면 0~2가 복사된다

반환형: 배열

 

배열 비교
Arrays.equals(배열1, 배열2);

반환형: boolean

 

배열 to List
Arrays.asList();

반환형: List

 

이진검색
Arrays.binarySearch(배열, 찾는 값);

반환형: int

찾는 값이 있으면 index 반환, 없으면 음수 반환

 

 

배열의 모든 값을 초기화
Arrays.fill(배열, 초기화할 값)

반환형: void

모든 값이 동일하게 초기화된다

 

 

 

배열과 List와 Stream을 자유롭게

int[] to List
IntStream.of(배열).boxed() //배열로 Stream 만들고
   .collect(Collectors.toList()); //List로 붙이기

 

문자열 to Stream
Arrays.stream(배열) //String[] to Stream
   .sorted() //깨알 정렬
   .collect(Collectors.joining()); //Stream to String

 

char형을 int로 사용한 IntStream
문자열.chars() //Stream 생성
   .filter(Character::isDigit) //숫자인 char만 남기기
   .map(Character::getNumbericValue) //char 모양 숫자 -> 진짜 int형 숫자
   .sum(); //모두 더하기

sum(int)말고 count(long), max(OptionalInt), min(OptionalInt), average(OptionalDouble)이 더 있다.

getAsInt(), getAsDouble()하면 값을 얻을 수 있다!

 

찐 IntStream
IntStream.range(시작, 끝+1) //range로 Stream 만들기
   .filter(i -> 조건) //필터링
   .toArray();

 

map
스트림
   .mapToInt(Integer::parseInt) //모두 int로 형변환
   .map(i -> i.ToUpperCase()) //여러 가지 형태로 가공 가능

 

Char[]로 스트림 만들기
CharBuffer.wrap(배열).chars
   .toArray();

 

사기캐 Collections

정렬
Collections.sort()

 

뒤집기
Collections.reverse()

 

swap
Collections.swap(리스트, 값1, 값2)