diff --git a/pages/Java.md b/pages/Java.md index eac0385..b7792f2 100644 --- a/pages/Java.md +++ b/pages/Java.md @@ -1,3 +1,88 @@ deck:: Logseq/coding tip +- ## **► 유틸 함수 모음** + - ### **◼︎ 정렬함수 (Arrays.sort(), Collections.sort())** + - **◉ Arrays.sort()** + - **문법 및 기본 특징** #card + id:: 692d5485-5781-449e-9e19-292d1343523b + - ```java + // 정적인 기본타입의 배열을 정렬 할 때 사용하는 함수, 원본배열을 변경함. + // int[], char[], String[], T[] + + + // 1. 전체 정렬 (모든 원소를 오름차순 정렬) + Arrays.sort(arr); + + // 2. 전체 정렬 (내림차순 정렬) + // int[] 형은 지원 안함. 객체 배열(Integer[], String[] 혹은 클래스의 배열만 지원) + Arrays.sort(arr, Collections.reverseOrder()); + ``` + - **커스텀 정렬(Comparator)** #card + id:: 692d5495-2c26-49c2-9585-fd0f1c27285f + - ```java + // 기본적으로 객체 배열만 가능 + // 매개변수로 람다식을 넣어서 정렬기준을 임의로 지정 가능함 + + Arrays.sort(arr, (a,b) -> b - a); //내림차순 정렬 + Arrays.sort(students, (s1, s2) -> Integer.compare(s1.score, s2.score)); // 점수 기준 오름차순 + Arrays.sort(students, (s1, s2) -> { + if(s1.score == s2.score) return Integer.compare(s2.age, s1.age); + return Integer.compare(s1.score, s2.score); + }); // 점수 기준 오름차순, 점수가 같다면 나이 기ㄹ준 내림차순 + ``` + - **◉ Collections.sort()** + - **문법 및 기본 특징** #card + id:: 692d58fc-1b8e-4d8f-ad72-514fc08d936f + - ```java + // List 인터페이스 구현체를 정렬할 때 사용 + // ArrayList, LinkedList, Vector 등등 + + // 1. 전체 정렬 (모든 원소를 기본 정렬기준에 따라 오름차순 정렬) + Collections.sort(list); + + // 2. 전체 정렬 (내림차순 정렬) + Collections.sort(list, Collections.reverseOrder()); + ``` + - **커스텀 정렬(Comparator)** #card + id:: 692d5a74-e198-4be0-b6e4-ee17b5796b83 + - ```java + // 매개변수로 람다식을 넣어서 정렬기준을 임의로 지정 가능함 + + Collections.sort(list, (s1, s2) -> Integer.compare(s1.length, s2.length)); + // 리스트에 저장된 각 원소의 길이에 따라 오름차순 정렬 + ``` + - **◉ Comparable 정렬** + - **문법** #card #depth-1 + id:: 692d5ce2-4655-4fad-bfaf-2021a0916e19 + - 클래스를 선언할 때 Comparable 인터페이스를 불러와서 선언함. + - 클래스 내부에 public int compareTo() 함수를 오버라이딩해서 구현함. + - 예제코드(Arrays.sort(), Collections.sort() 각각 사용) #card + id:: 692d5dbe-6593-4a4f-93a7-8fa34b198e6f + - ```java + class Student implements Comparable { + String name; + int score; + + public Student(String name, int score) { + this.name = name; + this.score = score; + } + + @Override + public int compareTo(Student o) { + // 점수 기준 오름차순 (내 점수 - 남 점수) + return Integer.compare(this.score, o.score); + } + } + + // Arrays.sort() 사용 + Student[] students; // 알아서 배열 채워넣었다고 가정함. + Arrays.sort(students); + + // Collections.sort() 사용 + List students = new ArrayList<>(); // 알아서 채워넣었다고 가정 + Collections.sort(students); + students.sort(Comparator.naturalOrder()); // java8 이후 + students.sort(); // 변수 없이 해도 가능 + ``` - \ No newline at end of file diff --git a/pages/영어기초 9강.md b/pages/영어기초 9강.md index 89edebd..34cda06 100644 --- a/pages/영어기초 9강.md +++ b/pages/영어기초 9강.md @@ -43,7 +43,7 @@ - **② 전명구(on the grass.)가 존재한다. 즉 동사는 자동사이다.** - **③ 주어가 3인칭 단수이므로 동사가 현재시제였다면 s가 붙어야 한다.** - 자동사의 과거형이므로 -s가 붙지 않는다. 즉 **이 문장은 옳은 문장이다.** - - ⋇ 정문 : She lays her baby. + - ⋇ 정문 : She lay on the grass. - **해석 : 그녀는 잔디 위에 누었다.** - ### **● found vs. found** - **뜻**