서론
Java로 알고리즘 문제를 풀 때 자주 사용하게 되는 문법들을 정리하려합니다. 계속해서 추가 예정입니다.
형 변환
Char To Int
char myChar = '3';
int myInt = Character.getNumericValue(myChar);
System.out.println(myInt);
//결과: 3
String To Char
String myString = "apple";
char[] myChars = myString.toCharArray();
for (int i=0; i<myChars.length; i++){
System.out.printn(myChars[i]);
}
/* [결과]
a
p
p
l
e
*/
Array
Arrays.toString(arr) - 배열 값 출력
int[] arr = { 1, 2, 3, 4, 5 };
System.out.println(Arrays.toString(arr));
Arrays.deepToString(arr) - 이차원 배열 값 출력
int[][] arr = {{1,2,3,4,5},{5,4,3,2,1}};
System.out.println(Arrays.deepToString(arr));
Arrays.sort(arr) - 배열 정렬
Arrays.sort(arr);
Arrays.copyOfRange(arr, i, j) - 배열 짜르기
// 1. 원본 배열
int[] arr = {0, 1, 2, 3, 4, 5};
// 2. 배열을 자를 index
int position = 3;
// 3. 배열 자르기
int[] arr1 = Arrays.copyOfRange(arr, 0, position);
int[] arr2 = Arrays.copyOfRange(arr, position, arr.length);
// 4. 자른 배열 출력
System.out.println(Arrays.toString(arr1)); // [0, 1, 2]
System.out.println(Arrays.toString(arr2)); // [3, 4, 5]
Arrays.stream(arr).sum() --> 배열 요소 모두 더하기
int arr[] = new int[] {12,34,45,21,33,4};
int sum = Arrays.stream(arr).sum();
System.out.println("Array Sum = "+sum);
Array 중복제거하기 (stream)
Arrays.stream(A).distinct().toArray()
ArrayList
ArrayList 정렬 방법
ArrayList<String> list = new ArrayList<>(Arrays.asList("C", "A", "B", "a"));
System.out.println("원본 : " + list); // [C, A, B, a]
// 오름차순으로 정렬
Collections.sort(list);
System.out.println("오름차순 : " + list); // [A, B, C, a]
// 내림차순으로 정렬
Collections.sort(list, Collections.reverseOrder());
System.out.println("내림차순 : " + list); // [a, C, B, A]
// 대소문자 구분없이 오름차순
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
System.out.println("대소문자 구분없이 오름차순 : " + list); // [a, A, B, C]
// 대소문자 구분없이 내림차순
Collections.sort(list, Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER));
System.out.println("대소문자 구분없이 내림차순 : " + list); // [C, B, a, A]
ArrayList 중복제거
List result = intList.stream().distinct().collect(Collectors.toList());
ArrayList.addAll(new ArrayList<>()) - 깊은 복사
ArrayList<Integer> arrList_A = new ArrayList<Integer>();
ArrayList<Integer> arrList_B =new ArrayList<Integer>();
arrList_A.addAll(arrList_B);
ArrayList.subList(int fromIdx, int toIdx) - 리스트 짜르기
ArrayList<Integer> testData = new ArrayList();
for (int data = 0; data < 10; data++) {
testData.add(data);
}
System.out.println(testData);
System.out.println(testData.subList(1, testData.size() - 1));
//출력 결과
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8]
Arrays.asList(T...a) - 리스트 값 넣기
ArrayList<String> list = new ArrayList<String>(Arrays.asList("A", "B"));
System.out.println(list);
//출력 결과
[A, B]
ArrayList 최대값, 최소값 구하기
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4));
System.out.println(list); // [0, 1, 2, 3, 4]
// Max
int max = Collections.max(list);
System.out.println(max); // 4
// Min
int min = Collections.min(list);
System.out.println(min); // 0
HashMap
stream()으로 HashMap key 값 가져오기
import java.util.HashMap;
import java.util.Map;
class Main
{
public static <K, V> K getKey(Map<K, V> map, V value)
{
return map.entrySet().stream()
.filter(entry -> value.equals(entry.getValue()))
.findFirst().map(Map.Entry::getKey)
.orElse(null);
}
public static void main(String[] args)
{
Map<String, Integer> hashMap = new HashMap();
hashMap.put("A", 1);
hashMap.put("B", 2);
hashMap.put("C", 3);
System.out.println(getKey(hashMap, 2)); // 인쇄물 `B`
}
}
HashMap key, value 가져오기 (entrySet)
HashMap<String,String> hashMap = new HashMap<String,String>();
hashMap.put("111", "aaa");
hashMap.put("222", "bbb");
// 방법1
Iterator<Map.Entry<String,String>> entries = hashMap.entrySet().iterator();
while(entries.hasNext()){
Entry<String,String> entry = (Entry<String,String>)entries.next();
System.out.println("key : " + entry.getKey() + " , value : " + entry.getValue());
}
// 방법2
for(Map.Entry<String,String> entry : hashMap.entrySet()){
System.out.println("key : " + entry.getKey() + " , value : " + entry.getValue());
}
// 방법3
hashMap.forEach((k,v) -> System.out.println("key : " + k + ", value : " + v));
반응형
'Programming > Java' 카테고리의 다른 글
[Java] 리플렉션 (Reflection)이란 무엇일까? (개념/ 예시) (1) | 2022.09.23 |
---|---|
[Java] Singleton 패턴이란? (개념/ 사용 이유/ 장단점/ 예제) (0) | 2022.05.29 |
[Java] Optional<T> 이란? (개념/ 종류 별/ 사용 방법/ 예제) (2) | 2022.05.21 |
[Java] 함수형 프로그래밍 - Function Interface / Custom Functional Interface (개념 / 예제) (0) | 2022.05.12 |
[Java] SOLID - 의존성 역전 원칙 (DIP / Dependency Inversion Principle)이란? (개념/ 예제) (1) | 2022.05.12 |
댓글