[Java - 자료구조] Set인터페이스
Language/Java2024. 6. 12. 23:35[Java - 자료구조] Set인터페이스

SetSet은 유일한 요소들을 갖는 컬렉션이다.특징유일성: Set에는 중복된 요소가 존재하지 않으며 요소를 추가할 때 이미 존재하는 요소면 무시한다순서 미보장: 대부분의 셋 구현은 요소들의 순서를 보장하지 않는다빠른 검색: Set은 요소의 유무를 빠르게 확인할 수 있도록 최적화 되어있다.보통 중복을 허용하지 않으면서 요소의 유무만 확인할 경우에 사용된다.import java.util.Arrays; public class MyHashSetV0 { private int[] elementData = new int[10]; private int size = 0; public boolean add(int value) { if (contains(value)) { ..

[JAVA - 자료구조] ArrayList vs LinkedList
Language/Java2024. 6. 9. 17:32[JAVA - 자료구조] ArrayList vs LinkedList

직접 구현한 ArrayList와 LinkedList비교 EXAMPLE기능ArrayListLinkedList앞에 추가(삭제)O(n) - 1369msO(1) - 2ms중간 추가(삭제)O(n) - 651msO(n) - 1112ms뒤에 추가(삭제)O(1) - 2msO(n) - 2195ms인덱스 조회O(1) - 1msO(n) - 평균 438ms검색O(n) - 평균 115msO(n) - 평균 492ms자바의 ArrayList와 LinkedList비교기능ArrayListLinkedList앞에 추가(삭제)O(n) - 106msO(1) - 2ms중간 추가(삭제)O(n) - 49msO(n) - 1112ms뒤에 추가(삭제)O(1) - 1msO(1) - 2ms인덱스 조회O(1) - 1msO(n) - 평균 438ms검색O..

[JAVA - 자료구조] LinkedList
Language/Java2024. 6. 9. 17:30[JAVA - 자료구조] LinkedList

ArrayList의 단점배열은 필요한 배열의 크기를 미리 확보하기때문에 나머지 공간은 사용되지 않고 낭비된다데이터의 추가와 삭제가 어려우며 이로인해 성능이 좋지않다낭비되는 메모리 없이 필요한만큼의 메모리만 사용하고 데이터를 중간에 추가하거나 삭제할 때도 효율적인 자료구조가 바로 노드와 연결이다노드와 연결의 '노드'는 내부에 저장할 데이터인 item과 다음으로 '연결'할 노드의 참조인 next를 가지고 있다.Node클래스public class Node { Object item; Node next; public Node(Object item) { this.item = item; } @Override public String toStrin..

Language/Java2024. 6. 9. 17:29[JAVA] 익명 클래스

anonymous class - 지역 클래스이지만 이름이 없다는 의미를 가지고있다보통의 클래스나 지역 클래스를 사용하기 위해서는클래스를 선언클래스를 new로 생성위와 같이 두 가지의 과정을 거쳤다.===익명 클래스를 사용하면 클래스의 이름을 생략하고, 클래스의 선언과 생성을 한번에 처리할 수 있다===익명 클래스 사용 전public class AnonymousOuter { private int outInstatnceVar = 3; public void process(int paramVar) { int localVar = 1; class LocalPrinter implements Printer{ int value = 0; ..

[JAVA] 날짜와 시간 - LocalDate, LocalTime
Language/Java2024. 6. 9. 17:19[JAVA] 날짜와 시간 - LocalDate, LocalTime

날짜와 시간 개념 및 이론날짜와 시간의 계산은 단순하게 생각하면 쉽지만, 실제로는 윤년, 각 달의 일수, 썸머타임 등 여러가지 요건과 환경을 고려해야하기때문에 매우 복잡하다.고려할 요소일광 절약 시간(썸머타임)타임존 계산: 각 타임존은 UTC로부터의 시간차이로 정의GMT: 처음 세계 시간을 만들 때 영국런던에 있는 그리니치 천문대를 기준으로 태양이 그리니치 천문대를 통과할 때를 정오로 한다.UTC: 세계협정시로 GMT보다 정밀한 시간측정을 단위로하며 개념자체는 유사하다LocalDate, LocalTime, LocalDateTime[!Local의 의미]세계 시간대를 고려하지 않아 타임존이 적용되지 않았기때문이다.즉, 특정 지역의 날짜와 시간만 고려할 때 사용한다애플리케이션을 개발할 때 국내 서비스만을 고려..

[JAVA - 자료구조] ArrayList
Language/Java2024. 6. 7. 16:58[JAVA - 자료구조] ArrayList

배열은 다음과 같은 단점이 있다배열의 길이를 동적으로 변경할 수 없다데이터를 추가하기 불편하다배열의 이런 불편함을 해소하고 동적으로 데이터를 추가할 수 있는 자료구조를 List라고 한다List자료구조의 특징순서가 있고 중복을 허용한다배열과 다르게 크기를 동적으로 변경할 수 있다.일반 ArrayList 구현public class MyArrayListV1 { private static int DEFAULT_CAPACITY = 5; private Object[] elementData; private int size = 0; public MyArrayListV1() { elementData = new Object[DEFAULT_CAPACITY]; } ..

[JAVA] 중첩 클래스 (중첩 클래스 ,정적 중첩 클래스, 지역 클래스)
Language/Java2024. 6. 3. 22:45[JAVA] 중첩 클래스 (중첩 클래스 ,정적 중첩 클래스, 지역 클래스)

중첩 클래스는 클래스안에 다른 클래스가 중첩되어있음을 의미하는 클래스로 크게는 ===정적 중첩 클래스===, ===내부 클래스===로 나뉘며 내부 클래스에는 다시 내부 클래스, 지역 클래스, 익명 클래스 세 가지로 나뉘어진다[!중첩클래스와 내부클래스 단어 정리]중첩 클래스와 내부 클래스의 의미는 면밀히 다르며 중첩 클래스란 중첩 for문과 같이 클래스 안에 다른 클래스가 중첩되어있음 그 자체를 의미하고, 내부 클래스는 클래스안에 내부 클래스가 외부 클래스의 구성요소가 되는 것을 의미한다내부 클래스: 내부 클래스, 지역 클래스, 익명 클래스정적 중첩 클래스: static키워드가 붙은 정적 중첩 클래스중첩 클래스: 정적 중첩 클래스 + 내부 클래스중첩클래스의 사용 이유논리적 그룹화: 특정 클래스가 다른 하나..

[JAVA] 다형성
Language/Java2024. 6. 2. 15:19[JAVA] 다형성

===다형성은 객체지향의 필수적인 요소이며 객체지향의 꽃이라고 불린다.===다형성의 핵심이론다형적 참조메서드 오버라이딩다형적 참조부모타입의 변수가 부모 인스턴스 참조Parent parent = new Parent();parent.parentMethod();자식변수가 자식 인스턴스 참조Child child = new Child();child.parentMethod();child.childMethod();child변수는 Parent인스턴스와 Child인스턴스를 모두 가지고있다.자식인스턴스에서 메서드를 먼저 찾아보고 없으면 부모 메서드를 호출한다.부모변수가 자식 인스턴스 참조(다형적참조)Parent poly = new Child();poly.parentMethod();부모타입의 변수가 자식 인스턴스를 참조부모..

image