ArrayList와 LinkedList의 차이
·
Java
알고리즘 문제를 풀며 최적화를 하기 위해 자료 구조의 형식을 고민했던 적이 있다.그 대상은 바로 LinkedList와 ArrayList이다. 오늘은 그 고민을 하면서 알게 된 지식들을 정리하고, 어떤 상황에 어떤 자료 구조가 어울리는지(합리적인지) 논하여 보고자 한다.ArrayList와 LinkedList의 차이를 이해하기 위해서는 java collections 프레임워크에 대해서 먼저 논해야 한다.둘 다 Collections interface를 implement 하였기 때문이다.CollectionsCollections는 데이터를 효율적으로 저장하고 조작하는 java 표준 라이브러리다.주요 인터페이스로는 List, Set, Queue, Map이 있다. 이 라이브러리는 우리가 코딩을 하면서 상황과 의도에 ..
[Java] resource에 있는 파일을 읽어오는 방법
·
Java
Java에서 파일을 읽어오는 방법에 대해 알아보자. 파일을 읽어오기 위해 가장 중요한 것은 파일의 위치를 정확히 지정하는 것이다.예를 들어, 아래와 같은 디렉토리 구조를 가진 프로젝트가 있다고 가정하자.src/ ├─ main/ │ ├─ java/ │ │ ├─ com.example.Main.java │ ├─ resources/ │ ├─ test.txt 여기서 test.txt 파일은 src/main/resources/ 디렉토리 아래에 위치하며,이는 클래스패스(classpath)로 지정된 경로에 포함된다. 정적 리소스 파일을 처리하는 방법 Java에서는 Path 객체를 생성하고 Java NIO API를 이용하여 파일의 내용을 문자열로 읽어올 수 있다.이를 위한 코드는 다음과 같다.pr..
리스트에서 중복 요소를 확인하는 방법
·
Java
1. 이중 반복문 사용하기가장 기본적인 방법은 리스트의 모든 요소를 두 번 탐색하여 중복을 검사하는 방법이다.@Testvoid duplicateTest() { List list = List.of(1, 2, 3, 4, 5, 1); boolean flag = false; for (int i = 0; i 각 요소를 순차적으로 탐색하면서 리스트를 다시 순회하게 된다.이 방법은 읽기에 다소 불편하고, 시간 복잡도가 O(n²)이다. 2. Set을 이용하기현재 목표는 “중복 요소를 확인하자”이다.이중 반복문은 직관적이지만, 시간 복잡도가 높기 때문에 더 빠른 연산을 위해 Set을 이용할 수 있다. Set은 중복된 값을 허용하지 않기 때문에 중복 확인에 적합하다.Set 중에서도 `HashSet`을 이용..
일급 컬렉션(first class collection)이 뭘까?
·
Java
본 글은 https://tecoble.techcourse.co.kr/post/2020-05-08-First-Class-Collection/ 를 참조하여 작성되었습니다. 일급 컬렉션을 사용하는 이유일급 컬렉션이란? 본 글은 일급 컬렉션 (First Class Collection)의 소개와 써야할 이유를 참고 했다. 일급 컬렉션이란 단어는 소트웍스 앤솔로지의 객체지향 생활체조 규칙 8. 일급 콜렉션 사용에서 언tecoble.techcourse.co.kr 일급 컬렉션이란 무엇일까?말 그대로 일급 컬렉션이 멀까?최근 코드 리뷰를 하면서 새롭게 알게 된 단어이다.익히 들어본 일급 함수(first class function)과 비슷할까 생각했다.일급 함수는 다음과 같은 특징을 갖는다.함수를 변수에 할당할 수 있다...
Java Primitive Type(1) - boolean, char
·
Java
자바에는 크게 두 가지의 타입이 있다. Primitive type Reference type primitive type는 실제 데이터 값을 저장하는 타입이고 Reference type는 Object로서 객체의 메모리에 값을 보관하는 타입이다. 지금은 기본적인 primitive type에 대해서 써보자 한다. primitive type에는 논리, 문자, 정수, 실수와 같이 변수에 기본적인 요소들을 담을 수 있다. ! primitive에는 null이 담길 수 없다! 지금은 논리, 문자에 대해서 알아본다. 1. 논리형(boolean) 논리형 type는 boolean이 존재한다. 이름에 걸맞게 논리(명제에 따른 결과)값인 true와 false가 들어간다. true/false로 크기는 1byte로 할당된다. (1..