전체 글
-
[Java]ArrayList 대소문자 구분 없이 정렬Android/Java 2023. 5. 9. 12:12
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] //방법 1 list.sort(String.CASE_INSENSITIVE_ORDER);//대소문자 구분 없이 오름차순 정렬 list.sort(Comparator.reverseOrder(String.CASE_INSENSITIVE_ORDER));//대소문자 구분 없이 내림차순 정렬 //방법 2 Collections.sort(list, String.CASE_INSENSITIVE_ORDER); Collections.sort(list, Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER)); *방법 1은 Java8 이후부터 가능* - Java를 주 언어로 바꾼지 꽤 됐는데도 아직 모르는 부분이 많은 것 같다ㅜㅜ 더..
-
[Java]HashSet과 HashMapAndroid/Java 2023. 5. 4. 18:49
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - Set 인터페이스 구현체 - Key값 없이 Value만 저장 - 중복 허용x - (중복을 허용하지 않으므로) 단 하나의 null 값만 가질 수 있음 - 데이터 삽입 -> 변수명.set(); - Map 인터페이스 구현체 - Key, Value 쌍으로 저장 - Key 중복 허용x, Value 중복 허용o(Key가 다르다면 Value가 같아도 됨) - 단 하나의 Key만 null 값을 가질 수 있고 여러 개의 Value가 null 값 가질 수 있음 - 데이터 삽입 -> 변수명.put(Key 값, Value 값); -> 만약 Value 값 변경하고 싶다면 put 사용해서 새로운 값 삽입하면 됨 *참고* https://siahn95.tistory.com/9..
-
[Java]StringBuilder(Feat. StringBuffer)Android/Java 2023. 4. 20. 21:29
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] StringBuilder의 개념은 기존에도 알고 있었지만 자꾸 사용하는 것을 깜빡해서 잊지 않기 위한 취지에서 정리.. - 변할 수 있는 String - String은 변할 수 없는 문자열로 String 변수의 값을 변경시키면 새로운 메모리 영역에 새로운 문자열 값이 저장되고 기존에 할당된 메모리 영역은 Garbage로 남아있다가 GC에 의해 처리됨(즉, 새로운 String 인스턴스가 생성된 것) - 여기서 만약 해당 변수의 값 변경이 자주 일어난다면? -> 사용하지 않는 할당된 메모리 영역이 늘어날 것이므로 매우 비효율적임 - 즉, String에서도 concat()이나 +를 통해 문자열을 연결할 수 있지만 이는 매우 비효율적!! StringBuild..
-
[Kotlin]확장 함수(Extension Functions)Kotlin 2023. 4. 20. 20:57
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 해당 클래스의 멤버함수인 것처럼 개발자가 함수를 정의해서 사용할 수 있는 것 fun String.hello() : String{ return "Hello! $this" } - hello()라는 함수는 실제로 String 내부에 존재하는 함수가 아니지만 String변수명.hello()를 통해 호출할 수 있음 - 여기서 String은 Receiver Type으로 this를 통해 Receiver Type에 접근할 수 있음 val str = "abc" println(str.hello()) - 위 코드를 실행하면 Hello! abc가 출력됨 *만약 확장 함수 이외에 확장함수와 동일한 이름의 멤버함수가 있다면? - 멤버함수를 우선적으로 호출(즉, 확장함수는 ..
-
[Kotlin]범위 지정 함수(apply, run, with, let, also)Kotlin 2023. 3. 26. 22:26
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 특정 객체에 대한 작업을 블록 안에 넣어 실행할 수 있도록 하는 함수 - 즉, 블록은 특정 객체에 대한 작업의 범위가 되므로 범위 지정 함수라고 부름 - 다른 말로 수신객체 지정 람다(함수)라고도 부름 - 수신객체를 명시하지 않거나 it으로 접근하는 것만으로도 람다 안에서 수신객체의 메서드를 호출할 수 있도록 하기 때문 - 이것이 가능한 이유는 블록 람다식에서 수신객체를 람다의 입력 파라미터 또는 수신객체로 사용했기 때문 - 장점 : 코드 간결화, 가독성 증가 - 수신객체 내부 프로퍼티 변경 후 수신객체 자체를 반환받기 위해 사용하는 함수 - 리턴값 : 수신객체 자체 - 수신객체 접근 : 블록에서 명시하지 않거나 this를 사용해서 접근 가능 va..
-
[Kotlin]람다표현식Kotlin 2023. 3. 26. 21:54
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 익명함수를 의미(즉, 이름이 없거나 이름을 생략한 함수) - 재사용되지 않는 함수 만들 때 사용하기 좋음 - 함수형 프로그래밍에서 사용 - 장점 : 가독성 증가 - 1. 매개변수가 없는 익명함수 val 함수명 = fun(){ } val 함수명: () -> Unit = {} 함수명() //익명함수 호출 - 2. 매개변수 값 받고 값을 리턴하는 익명함수 val 함수명: (매개변수1 자료형, 매개변수2 자료형) -> 반환형 = {매개변수명1, 매개변수명2 -> 리턴값} val 변수명 = 함수명(매개변수1 값, 매개변수2 값)//함수 리턴값을 변수에 넣음 println(변수명) //예제 val temp: (String, String) -> String =..
-
[Kotlin]데이터 클래스(Data Class)Kotlin 2023. 3. 26. 21:21
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 그동안 데이터 클래스를 자주 사용했지만 막상 데이터 클래스에 대해 설명해야 한다고 생각해보니 잘 모르는 거 같아서 정리해보려고 한다 - 데이터 보관을 주 목적으로 하는 클래스 - toString(), hashCode(), equals(), copy() 메서드를 자동으로 만들어주는 클래스 - class 키워드 앞에 data를 붙이면 됨 - 상속 불가 - val 또는 var로만 선언 가능 - abstract, open, sealed, inner, internal 붙이기 불가능 - 1개 이상의 프로퍼티 가지고 있어야 함 - equals(), toString(), hashCode()에 오버라이드 구현 시 구현 함수 사용 data class Member( ..