[Java/Kotlin] 자주 쓰는데 자주 까먹는 것들 모음
2020. 4. 8. 20:20
생각날 때마다 하나씩 업데이트할 예정.
Java
Array → List
String[] array = new String[0];
List<String> list = Arrays.asList(array);
List → Array
List<String> arrayList = new ArrayList<>();
String[] array = arrayList.toArray(new String[0]);
List → ArrayList, LinkedList
List<String> list = Arrays.asList(array);
List<String> arrayList = new ArrayList<>(list);
List<String> linkedList = new LinkedList<>(list);
Print Array
String.join()
은 array, list 둘 다 인자로 받을 수 있다.
String[] array = new String[]{"안", "녕", "."};
System.out.println(Arrays.toString(array)); // [안, 녕, .]
System.out.println(String.join(", ", array)); // 안, 녕, .
Sort Array
ex. 오름차순 정렬
int[] array = new int[]{5, 6, 3, 2, 1};
Arrays.sort(array);
ex. 내림차순 정렬
- Collections.reverseOrder 대신 모든 원소에 -1을 곱하는 방법도 있다.
Integer[] array = new Integer[]{5, 6, 3, 2, 1};
Arrays.sort(array, Collections.reverseOrder());
ex. 문자열 길이순으로 정렬
List<String> sortedList = Arrays.stream(phoneBook)
.sorted(Comparator.comparingInt(String::length))
.collect(Collectors.toList());
Sort List
ex. 문자열 길이순으로 정렬
list.sort((o1, o2) -> Integer.compare(o1.length(), o2.length()));
list.sort(Comparator.comparingInt(String::length));
Base64 인코딩, 디코딩
byte[] bytes = "string".getBytes();
// Base64 encode
Encoder encoder = Base64.getEncoder();
byte[] encodeBytes = encoder.encode(bytes);
String encodeString = encoder.encodeToString(bytes);
// Base64 decode
Decoder decoder = Base64.getDecoder();
byte[] decodeResult = decoder.decode(encodeBytes);
Kotlin
HashMap 정렬
hashMap.toSortedMap() // key를 기준으로 오름차순 정렬
hashMap.toSortedMap(reverseOrder()) // key를 기준으로 내림차순 정렬
hashmap.toSortedMap(compareBy { it.length }) // 정렬기준 직접 설정
Null item 제거하기
list.filterNotNull()
배열 생성과 동시에 초기화
val arr = IntArray(10) { i -> 0 }
배열에서 필요한 N개만 남기기
val chars = ('a'..'z').toList()
// 앞에서부터 n개를 택하는 take
println(chars.take(3)) // [a, b, c]
println(chars.takeWhile { it < 'f' }) // [a, b, c, d, e]
println(chars.takeLast(2)) // [y, z] 반대로 뒤에서부터 n개를 택함
println(chars.takeLastWhile { it > 'w' }) // [x, y, z]
// 앞에서부터 n개를 버리는 drop
println(chars.drop(23)) // [x, y, z]
println(chars.dropLast(23)) // [a, b, c] 반대로 뒤에서부터 n개를 버림
println(chars.dropWhile { it < 'x' }) // [x, y, z]
println(chars.dropLastWhile { it > 'c' }) // [a, b, c]
for문 돌릴 때 index와 value 같이 쓰기
for ((i, value) in heights.withIndex()) {
// ...
}
중복 요소 제거
list.distinct()
list.distinctBy { /* key로 사용할 값 지정 */ }
지정된 조건과 일치하는 항목 개수 구하기
heights.count() // size
heights.count { it >= 3 } // 높이가 3 이상인 값의 개수
모든 요소 검사하기
if (numbers.all { it == 0 }) {
// ...
}
if (!numbers.any { it == 0 }) {
// ...
}
'if (study) > Java & Kotlin' 카테고리의 다른 글
[Kotlin] *(Star-projections)과 Any의 차이점 (0) | 2020.04.17 |
---|---|
Java의 concurrent 패키지 알아보기 (2) Atomic Type 사용하기 (0) | 2020.03.25 |
Java의 concurrent 패키지 알아보기 (1) Lock을 사용한 동기화 (0) | 2020.03.15 |