문제를 풀면서 모르거나 한번에 떠오르지 않거나 헷갈리는 부분들을 정리해 보려고 한다!
배열의 정렬
굳이 코드로 정렬하지 않아도 메소드를 호출하면 간단하게 원하는 내용을 정렬할 수 있다.
Arrays.sort()
배열의 요소를 오름차순으로 정렬하기 위해 사용한다.
오름차순이 디폴트인 이유는 기본적으로 구현되어 있는 Comparable Interface의 compareTo 메서드가 기준이 되기 때문이라고 한다.
Arrays.sort()에서 자꾸 s를 빼먹길래 한 번 정리하고 넘어가려 한다:(
import java.util.*;
int[] arr = new int[]{1, 9, 8, 2, 3};
String[] strArr = new String[]{"A", "C", "D", "B"};
Arrays.sort(arr);
Arrays.sort(strArr);
//arr: 1 2 3 8 9
//strArr: A B C D
범위를 지정해 index에 포함되는 부분만 정렬하는 것도 가능하다!
import java.util.*;
int[] arr = new int[] {1, 9, 8, 2, 3}
Arrays.sort(arr, 1, 4);
//arr : 1 2 8 9 3
toIndex 이전 index까지 정렬해준다.
Collections.reverseOrder()
배열을 내림차순으로 정리할 때 사용한다.
import java.util.Arrays;
import java.util.Collections;
Integer[] arr = {1, 9, 8, 2, 3};
Arrays.sort(arr, Collections.reverseOrder());
//arr : 9 8 3 2 1
위와 같이 단독 사용이 아닌 Arrays.sort()와 함께 사용함을 알 수 있다.
Collections의 도움을 받아야 하기 때문에 Wrapper 클래스로 선언해 줘야 한다
Stream API
Java8 이상을 사용한다면 배열이나 컬렉션을 다루는 스트림(Stream) API를 이용할 수도 있다. Stream을 이용한다면 람다식(Lambda expression)을 통해 더 간결하게 표현할 수 있다고 한다.
String str = "ADBEC";
String[] strArr = str.split(""); //new String[] 배열로 변환
String streamSort1 = Stream.of(strArr).sorted().collectCollectors.joining());//오름차순
String streamSort2 = Stream.of(strArr).sorted(Comparator.reverseOrder()).collect(Collectors.joining())//내림차순
※ Comparator는 primitive Type의 배열에는 적용이 불가능하고 Wrapper Class에만 적용이 가능
모던액션인자바를 읽으며 안그래도 스트림을 자세히 공부해봐야겠다고 생각해서 조금씩 하고 있었는데 조만간 정리해서 포스팅 해야겠다.
toCharArray()
문자열을 한 글자씩 쪼개서 char 타입의 배열에 집어 넣어주는 메소드이다.
String str = "abc";
char[] charArr = str.toCharArray();
//주어진 문제에 맞는 연산들을 함
//charArr을 다시 문자열로 변환하기
String str1 = new String(charArr); //String 생성자
String str2 = String.valueOf(charArr); //String.valueOf
문자열을 배열로 만들어 계산해도 반환 타입은 보통 문자열이기에 문자열 -> 배열 -> 문자열 코드로 작성해 봤다
📕Reference
https://ifuwanna.tistory.com/232
'Programming > JAVA' 카테고리의 다른 글
[자료구조] Stack (0) | 2023.01.15 |
---|---|
[2023.01.12] charAt() (0) | 2023.01.12 |
[2023.01.11] StringBuilder (0) | 2023.01.11 |
[2023.01.05] 문자열 형변환/length/parseInt/substring/Math (0) | 2023.01.05 |
JAVA Collection Framework(JCF) (0) | 2022.11.16 |
댓글