생각날 때마다 하나씩 업데이트할 예정.

 

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 }) {
 // ...            
}