업데이트 중 ...
Wrapper Class
Integer
- method
| 기능 | method | description |
| 형변환(숫자<->문자) | Integer.parseInt(s) Integer.toString(n) |
String
- method
| feature | method | description |
| 길이 | s.length() | |
| 인덱스로 문자 조회 | s.charAt(index) | |
| 문자로 인덱스 조회 | s.indexOf(s2) s.lastIndexOf(s2) |
|
| 분할 | s.substring(stratIndex) s.substring(startIndex, endIndex) |
|
| 치환 | s.replace(target , replacement) s.replaceAll(regex, replacement) s.replaceFirst(regex, replacement) |
|
| 값 일치 여부 | s.equals(s2) | String은 reference 객체이므로 == 로 비교하면 주소값을 비교하기 때문에 값 비교는 equals을 사용함. |
| 포함 여부 | s.contains(s2) | |
| 사전순 비교 | s.compareTo(s2) | 사전순으로 s1이 s2보다 앞이면 -1, 같으면 0, 뒤면 1 반환. 마지막 문자만 다르다면, 마지막 문자의 사전순 차이 반환. |
| 병합 | String.join("", s) | |
| 분리 | s.split(delimeter) | |
| 공백 제거 | s.trim() | 앞 뒤 공백 제거. |
StringBuilder
String은 한 번 만들어지면 문자 추가, 삭제가 불가능하기 때문에(새로운 객체를 만들어 할당) 변경이 필요하면 StringBuilder를 사용한다.
- method
| feature | method | description |
| 추가 | sb.append(s) | |
| 삽입 | sb.insert(index, s) | |
| 삭제 | sb.delete(start, end) | |
| 변경 | sb.replace(start, end, str) | |
| 뒤집기 | sb.reverse() | |
| 길이 변경 | sb.setLength(n) | n이 원래 길이보다 길 때 뒤가 공백으로 채워짐. |
Array
- 정렬
- 오름차순
- Arrays.sort(array)
- 내림차순
- primitive type을 담고 있는 경우
- Arrays.sort(Arrays.stream(array).boxed().toArray(), Collections.reverseOrder())
+) Collction.reverseOrder()은 wrapper type에만 사용할 수 있으므로, boxing 후에 사용해야 한다. - Arrays.sort(Arrays.stream(array).boxed().toArray(), (a, b)->b-a))
- Arrays.sort(Arrays.stream(array).boxed().toArray(), Collections.reverseOrder())
- wrapper type을 담고 있는 경우
- Arrays.sort(array, Collection.reverseOrder())
- primitive type을 담고 있는 경우
- 다른 기준
- Arrays.sort(array, (o1, o2)->(o1, o2).compareTo(o1+o2))
- 오름차순
Collections
List, Set, Queue를 상위 인터페이스로 가지는 데이터의 집합 혹은 그룹
- method
- Collections.max(collection)
- Collections.min(collection)
- Collections.reverse(collection)
- Collections.frequency(list, target) // target count
- 정렬
- Collections.sort(collection) // 오름차순
- Collection.sort(collection, Collections.reverseOrder()) // 내림차순
List
Stack, Vector, ArrayList의 상위 인터페이스로, 순서가 있고 중복을 허용한다.
- method
| feature | method | description |
| 추가/삽입 | list.add(x) list.add(index, x) list.addAll(list2) |
|
| 값으로 인덱스 조회 | list.indexOf(x) list.lastIndexOf(x) |
|
| 특정 값 삭제 | list.remove(index) list.remove(x) |
|
| 크기 | list.size() | |
| 포함 여부 | list.contains(x) list.containsAll(x) |
|
| 비었는지 여부 | list.isEmpty() | |
| 차집합 | list.removeAll(list2) | |
| 교집합 | list.retation(list2) | |
| 비우기 | list.clear() | |
| 람다식으로 요소 제거 | list.removeIf(x->x.equals(y)) |
- 변환
- Array <-> List 변환
- 둘 다 wrapper type을 담고 있는 경우
- Array -> List
- Arrays.asList(array)
- List -> Array
- list.toArray()
- Array -> List
- Array는 primitive type, List는 wrapper type을 담고 있는 경우
- Array -> List
- Arrays.stream(array).boxed().collect(Collectors.toList())
- List -> Array
- list.stream().mapToInt(x->x).toArray() // Integer to int의 경우
- Array -> List
- 둘 다 wrapper type을 담고 있는 경우
- Array <-> List 변환
Sort
Array
Arrays.sort(arr);
// 래퍼타입만 사용 가능
Arrays.sort(arr, Collections.reverseOrder());
Arrays.sort(arr, (a, b) -> b.compareTo(a)); // 내림차순
Arrays.sort(arr, (a, b) -> {
if (a[0] == b[0]) return Integer.compare(a[1], b[1]);
return Integer.compare(a[0], b[0]);
});
Collections
// Collections
Collections.sort(list);
Collections.sort(list, Collections.reverseOrder());
Collections.sort(list, (a, b) -> { b.compareTo(a) }); // 내림차순
// List
list.sort();
list.sort(Collections.reverseOrder());
list.sort((a, b) -> b.compareTo(a)); // 내림차순
// Map
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
entries.sort(Map.Entry.comparingByValue());
entries.sort(Map.Entry.comparingByValue().reversed());
entries.sort(Map.Entry.comparingByKey());
entries.sort(Map.Entry.comparingByKey().reversed());