키 가져오기 for (String key : map.keySet()) { System.out.println(key); } 값 가져오기 값만 가져오고 싶은 경우 values() 메서드를 사용합니다. for (String key : map.values()) { System.out.println(key); } Java 8 이후부터는 List에서는 sort() 메소드를 호출하여 정렬할 수 있습니다. list.sort(Comparator.naturalOrder()); // 오름차순 list.sort(Collections.reverseOrder()); // 내림차순 answer = list.stream().mapToInt(Integer::intValue).toArray(); // list => int[]배열에 값 넣기 정렬 // ArrayList 준비 ArrayList<String> list = new ArrayList<>(Arrays.asList("C", "A", "B", "a")); System.out.println("원본 : " + list); // [C, A, B, a] // 오름차순으로 정렬 list.sort(Comparator.naturalOrder()); System.out.println("오름차순 : " + list); // [A, B, C, a] // 내림차순으로 정렬 list.sort(Comparator.reverseOrder()); System.out.println("내림차순 : " + list); // [a, C, B, A] // 대소문자 구분없이 오름차순 정렬 list.sort(String.CASE_INSENSITIVE_ORDER); System.out.println("대소문자 구분없이 오름차순 : " + list); // [a, A, B, C] // 대소문자 구분없이 내림차순 정렬 list.sort(Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER)); System.out.println("대소문자 구분없이 내림차순 : " + list); // [C, B, a, A] 데이터의 용도에 따라 빠른 탐색을 위해서 ArrayList를 사용할 때도 있고, 삽입/삭제를 위해 LinkedList를 사용해야 하는 경우도 있습니다. ArrayList => String[] 배열로 변환. answer.toArray(new String[answer.size()]) 유클리드 호제법 if(a%b == 0) { return b; } else { //최대공약수 GCD(b, a%b); } //최소 공배수 => answer * arr[i] / gcd; //최소 공배수 => a * b / gcd; Integer.toBinaryString(num); // num = 6이면 6 => 2진수로 변경 이진탐색 이진탐색의 핵심은 중간지점을 기준으로 비교하면서 새로운 탐색범위를 설정하는것 이진탐색 고려 1. 큰숫자 , 2. 최대/최소 등. 맨처음에 정렬을 해준다 이진탐색 기본구현코드 int BinarySearch(int arr[], int target) { int start = 0; int end = arr.length - 1; int mid; while(start <= end) { mid = (start + end) / 2; if (arr[mid] >= target) start = mid +1; else (arr[mid] > target) end = mid - 1; } return mid; } 삼각달팽이 - 구현문제 : 1.아래 2.옆 3.대각선