Android/Java
-
[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..
-
[Java]MapAndroid/Java 2023. 3. 20. 18:24
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - Key, Value 쌍을 갖는 자료형 - 순차적으로 접근하는 List와 달리 Key 값을 통해 바로 접근 가능 - 종류 : HashMap, LinkedHashMap, TreeMap - 삽입 : put HashMap map = new HashMap(); map.put("Key", "Value"); - Key의 Value값 가져오기 map.get("Key값"); - null값이 오는 경우를 대비해 디폴트값 짖어하고 싶다면 getOrDefault() 사용 map.getOrDefault("Key값", "디폴트값"); - 해당 Key가 존재하는지 확인 : containsKey map.containsKey("Kewy값"); - 해당 Key값이 존재하면 tru..
-
[Java]OptionalAndroid/Java 2023. 3. 20. 18:04
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - getter 등을 이용해 값 가져오는 경우 해당 값이 null일 수도 있음 -> 이 경우에 NPE(Null Pointer Error) 발생 - 이를 방지하기 위해 null 검사를 따로 하거나 디폴트값을 설정해줘야 함 - Optional은 null이 들어올 가능성이 있는 값을 감싸는 Wrapper 클래스 - Optional 클래스 통해 NPE 방지 가능 - 빈 값을 갖는 Optional 생성 Optional optional = Optional.empty(); - null이 들어올 수도 있는 Optional 생성 Optional optional = Optional.ofNullable(getName()); String name = optional.orE..
-
[Java]자바 입출력(스캐너(Scanner), BufferedReader)Android/Java 2023. 3. 19. 15:19
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 자바 입출력 방법에는 대표적으로 Scanner와 BufferedReader가 있음 public class Main { public static void main(String[] args) { Scanner sc =new Scanner(System.in); int A = sc.nextInt(); int B = sc.nextInt(); System.out.print(A+B); sc.close();//한 번 close 후에는 다시 Scanner 사용 불가 }//main } - 입출력 시 리소스를 많이 사용하여 성능 부하를 초래하므로 BufferedReader에 비해 매우 느림 - close() 하지 않아도 GC에 의해 자동으로 메모리 정리되지만, GC ..