Java (7) 썸네일형 리스트형 [Java] 김영한의 자바 중급 2편 #7 - HashSet Set : 중복을 허용하지 않고, 순서를 보장하지 않는 자료 구조1. 직접 구현하는 Set1 - MyHashSetV1이전에 구현한 성능이 O(n)으로 느린 MyHashSetV0를 다시 한번 확인해보자.1.1. 단점add() 사용 시 중복 데이터가 있는지 전체 데이터를 항상 확인해야 한다. → o(n)contains()로 데이터를 찾을 때는 Set에 있는 모든 데이터를 찾고 비교해야 하므로 평균 O(n)이 걸린다.→ 데이터를 추가할 때 중복 데이터가 있는지 체크하는 부분에서 성능이 o(n)으로 좋지 않다.→ 이 부분을 평균 O(1)로 개선해보자.1.2. 해시 알고리즘을 사용하도록 변경package collection.set;import java.util.Arrays;import java.util.Linke.. [Java] 김영한의 자바 중급 2편 #4 - LinkedList 1. 노드와 연결11.1. 배열 리스트의 단점배열의 사용하지 않는 공간 낭비배열의 중간에 데이터를 추가할 때데이터를 추가할 때 기존 데이터들을 오른쪽으로 이동시켜야 한다.데이터를 삭제할 때 빈 공간을 채우기 위해 데이터들을 왼쪽으로 이동시켜야 한다.1.2. 노드와 연결낭비되는 메모리 없이 필요한 만큼 메모리를 확보해서 사용하고, 또 앞이나 중간에 데이터를 추가하거나 삭제할 때도 효율적인 자료 구조가 있는데, 바로 노드를 만들고 서로 연결하는 방식이다.Node Classpublic class Node{ // 저장할 데이터 Object item; // 연결할 노드의 참조 Node next;}1.3. 간단한 예제Node Classpackage collection.link;public class Node { .. [Java] 김영한의 자바 중급 2편 #1 - 제네릭 1. Generic이 필요한 이유에 대하여 Integer를 담을 수 있는 Boxpackage generic.ex1;public class IntegerBox { private int value; public void set(Integer value) { this.value = value; } public Integer get() { return value; }} String을 담을 수 있는 Boxpackage generic.ex1;public class StringBox { private String value; public void set(String object) { this.value = object; } pu.. [Java] 김영한의 자바 중급 1편 #9 - 예외처리 이론 김영한 선생님의 자바 중급을 듣고 정리한 내용입니다. 1. 자바 예외 처리1 - 예외 계층 Java는 프로그램 실행 중에 발생할 수 있는 예상치 못한 상황, 즉 예외(Exception)을 처리하기 위한 메커니즘을 제공한다. 이는 프로그램의 안정성과 신뢰성을 높이는데 중요한 역할을 한다. try, catch, finally, throw, throws 1.1. 예외 계층 그림 Object : Java에서 기본형을 제외한 모든 것은 객체이고 예외(Exception)도 객체이다. 모든 객체의 최상위 부모는 Object이므로 예외의 최상위 부모도 Object이다.Throwable : 최상위 예외이다. 하위에 Exception과 Error가 있다.Error : 메모리 부족이나 심각한 시스템 오류와 같이 애플리케.. [Java] 김영한의 자바 중급 1편 #3 - String 클래스 김영한 선생님의 자바 중급을 듣고 정리한 내용입니다. 1. String 클래스자바에서 문자를 다루는 대표적인 타입은 char, String 2가지가 있다. package stringClass;public class CharArrayMain { public static void main(String[] args) { char[] charArr = new char[]{'h', 'e', 'l', 'l', 'o'}; System.out.println(charArr); String str = "hello"; System.out.println("str = " + str); }}# 실행 결과hellostr = hello 하지만 이렇게 char[]을 직접.. [Java] 김영한의 자바 중급 1편 #2 - 불변 객체 객체의 상태, 즉 객체 내부의 값이나 필드, 멤버 변수가 변하지 않는 객체를 불변 객체라고 한다.그렇다면 불볍 객체를 왜 사용하는 것일까? 기본형과 참조형의 공유에 대해서 먼저 알아본다. 1. 기본형과 참조형의 공유자바의 데이터 타입을 보면 크게 다음의 타입으로 나눌 수 있다.기본형 : 하나의 값을 여러 변수에서 절대로 공유하지 않음참조형 : 하나의 객체를 참조값을 통해 여러 변수에서 공유함 1.1. 기본형 예제기본형 : 하나의 값을 여러 변수에서 절대로 공유하지 않는다.→ b = a 라고 하면 자바는 항상 값을 복사해서 대입한다. 1.2. 참조형 예제b = a 라고 할 경우 a라는 인스턴스의 메모리 참조값인 x001을 b에 대입하는 것이다. 참조형 예제에서 볼 수 있듯이, 여러 변수가 하나의 객체.. [Java] 김영한의 자바 중급 1편 #1 - Object 클래스 김영한 선생님의 자바 중급을 듣고 정리한 내용입니다. 1. java.lang 패키지java.lang : 자바가 기본으로 제공하는 라이브러리(클래스 모음)중에 가장 기본이 되는 것으로 자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지 1.1. 대표 클래스들Object : 모든 자바 객체의 부모 클래스String : 문자열Integer, Long, Double : 래퍼 타입으로 기본형 데이터 타입을 객체 형태로 만든 것Class : 클래스의 메타 정보를 담고 있는 클래스System : 시스템과 관련된 기본 기능들을 제공 2. Object 클래스Object class : 자바에서 모든 클래스의 최상위 부모 클래스를 의미함Object 클래스는 모든 클래스의 부모 클래스이다.Parent 클래스.. 이전 1 다음